簡體   English   中英

使用 jQuery post 方法發送表單數據不起作用

[英]Sending form data with jQuery post method not working

嘗試通過 jQuery Ajax post 方法更新 SQL Server 中的刪除標志。 我不確定問題是出在我的 PHP 還是 jQuery 代碼上。 當我按下刪除按鈕時,什么也沒有發生,但網絡開發工具沒有表明語法有任何問題。

這是 HTML:

    <div class='dialog' id='editForm' title='Edit' >
        <form method='POST' id ='editFo' name = 'editFo' action='post' enctype='multipart/form-data'>

        </form>
    </div>`

這是按鈕的html:

    <button id="deleteFormbtn" >Delete</button>

這是jQuery代碼:

    $("#deleteFormbtn").click(function(){
       $.post ( "deleteRow.php", $("#editForm: input").serializeArray(), function(data){
            alert(data);
        });
    });`

這是PHP代碼:

`

require_once ('sql/connectionstring/connectionstring.php');
$conn = SQLServerConnection();  


if(isset($_POST['vendor'])){

    $loc_sql = "SELECT TOP 1 loc_id FROM <table> WHERE loc_name = ?";
    $parms = array($_GET['loc']);
    $loc = sqlsrv_query($conn, $loc_sql, $parms) or die (print_r ( sqlsrv_errors(), true));

    while ($q = sqlsrv_fetch_array($loc)){
        $loc_id = $q["loc_id"];
    }
    $username = $_POST['username'];
    $password = $_POST['password'];
    $comments = $_POST['comments'];
    $vendor_website = $_POST['website'];
    $vendor = $_POST['vendor'];


    $query = "UPDATE <table> SET <column> = '0' WHERE <column> = ?";

    $parms = $username;

    $result = sqlsrv_query($conn, $query, $parms) or die (print_r ( sqlsrv_errors(), true));

    sqlsrv_close($conn);

}
header('Location: <location>);

?>`

  • 您需要通過 AJAX 發布請求傳遞“供應商”,以便 PHP 在嘗試訪問$_POST['vendor']時可以識別它
  • 您還需要處理“ if(isset($_POST...) { .... } ”未滿足的情況,因此它會返回錯誤。
  • 更多地關注 PHP 部分,以 JSON 格式向您發送回復。 類似於:

    $data = /** 無論你在序列化 **/;

    header('內容類型:應用程序/json');

    回聲 json_encode($data);

您需要將type="button"添加到您的按鈕,否則頁面重新加載並且請求將不會被發送,因為它默認為“提交”。

<button type="button" id="deleteFormbtn" >Delete</button>

此外,您引用的是div而不是 AJAX 請求中的form 您不需要methodaction屬性,AJAX 會為您處理。 發送整個表單,而不僅僅是input

<div class='dialog' id='editForm' title='Edit' >
  <form id ='editFo' name = 'editFo' enctype='multipart/form-data'>

  </form>
</div>

$("#deleteFormbtn").click(function(){
  $.post ("deleteRow.php", $("#editFo").serialize(), function(data){
    alert(data);
  });
});

暫無
暫無

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

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