簡體   English   中英

PHP通過一種表單向SQL / FTP服務器提交兩種表單操作

[英]PHP Submit two form actions via one form to SQL/FTP server

需要您的幫助和建議。 我有一個表單,可將​​數據提交到MySQL數據庫,將圖像提交到數據庫+ Sql。 我面臨的問題是我可以使用方法成功提交數據,但無法提交圖像,因為它需要<form method="post" enctype="multipart/form-data" action="myFile.php"> 圖像也是如此。 我可以將圖像成功提交到ftp,但是使用<form method="post" enctype="multipart/form-data" action="myFile.php">不會發布<form method="post" enctype="multipart/form-data" action="myFile.php">

我嘗試了本書中所有可能的方法,並研究了許多站點。 我嘗試使用Ajax,Jquery(兩種形式,兩種動作和一種提交按鈕)來解決這個問題。 請給我指出正確的方向。

我的代碼:Form.php(我目前最終制作了兩種形式):

<form method="post">
    <input name="haz1" type="text" value="<?php echo $haz1; ?>">
    <input name="haz2" type="text" value="<?php echo $haz2; ?>">
    <input name="submit" type="submit" id="submit" value="SAVE FORM">
    </form>

    <form method="post" enctype="multipart/form-data" action="myFile.php">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
    <input name="haz_img1" type="file" id="img" />
    <br>
    <input name="submit" type="submit" id="submit" value="SAVE FORM">
</form>

myFile.php

<?php

    require("../db.php");
    $id =$_REQUEST['id'];

    $result = mysql_query("SELECT * FROM haz3 WHERE id  = '$id'");
    $test = mysql_fetch_array($result);

    if(!$result)
    {
        die("Error: Data not found..");
    }

    $haz_img1 = $test['haz_img1'];
    $haz1 = $test['haz1'];
    $haz2 = $test['haz2'];

    if(isset($_POST['submit']))
    {
        $haz_img1_save = $_POST['haz_img1'];
        $haz1_save = $_POST['haz1'];
        $haz2_save = $_POST['haz2'];

        $remote = "hazard-access/";
        $target1 = $remote . basename( $_FILES['haz_img1']['name']);
        $haz_img1 = ($_FILES['haz_img1']['name']);
        move_uploaded_file( $_FILES['haz_img1']['tmp_name'], $target1 );

        mysql_query("UPDATE haz3 SET haz_img1 = '$haz_img1_save',haz1 ='$haz1_save',haz2 ='$haz2_save' WHERE id = '$id'")
        or die(mysql_error()); 
        echo "";
    }

    mysql_close($conn);
?>

我正在嘗試一起提交數據和文件。 我不知道是否可以使用一種或兩種形式,或者是否應該通過ajax進行異步處理。

我嘗試了這種方法:

function sendData()
{
    var formData = new FormData(document.getElementById('form1'));

    $.ajax({
        url: 'h1_temp.php',  //Server script to process data
        type: 'POST',  //POST or GET
        xhr: function()
        {  // Custom XMLHttpRequest
            var myXhr = $.ajaxSettings.xhr();
            return myXhr;
        },
        data: formData,  //form data
        //Options to tell jQuery not to process data or worry about content-type.
        cache: false,
        contentType: false,
        processData: false
    });
}

為什么不將所有數據僅發送到一個腳本?

<form method="post" enctype="multipart/form-data">
    <input name="haz1" type="text" value="<?php echo $haz1; ?>" />
    <input name="haz2" type="text" value="<?php echo $haz2; ?>" />

    <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
    <input name="haz_img1" type="file" id="img" />
    <br>
    <input name="submit" type="submit" id="submit" value="SAVE FORM">
</form>

您不只是將圖像保存在form.php (也許使用myFile.php腳本)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM