簡體   English   中英

ajax將信息發布到php $ _POST中

[英]ajax post information into php $_POST

我試圖從我的ajax獲取信息到PHP $ _POST,以便我可以更新我的數據庫。

HTML

<form id="23" method="post">
   <select name="admin" onchange="chosenadmin(23)">
      <option value="rick">rick</option>
      <option value="john">john</option>
      <option value="dick">dick</option>
    </select>
</form>

AJAX

function changeadmin(verkochtid){
        id = verkochtid;
        console.log(id);
    $.ajax({

            url: 'winkels.php',
            id: id,
            type: 'POST',
            data: $('#'+id).serialize(),
            success: function(data, id){
                console.log(this.data);
                console.log(this.id);  
               }  
         });            
 };

PHP

if (isset($_POST["serialize"])) {
                $data = $_POST["serialize"];
                $medewerker = $data["chosen_admmin"];
                $verkoopid = $data["id"];
                $sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";

                echo $sql;
 };

PHP將永遠不會被執行但在控制台日志中我會看到表單的id和admin = rick。

我可以從中看出,AJAX獲取信息並獲取它,但我如何在我的PHP中設置它?

當您序列化時,$ _POST中的數據將具有html中輸入名稱字段的索引。

您可以使用隱藏的輸入字段來獲取序列化的ID

<form id="23" method="post">
    <select name="admin" onchange="chosenadmin(23)">
        <option value="rick">rick</option>
        <option value="john">john</option>
        <option value="dick">dick</option>
    </select>
    <input type="hidden" name="id" value="23" />
</form>

然后你可以在php中執行以下操作:

if (isset($_POST["admin"]) && isset($_POST["id"])) {
    $admin = $_POST["admin"];
    $id = $data["id"];

    $sql = "UPDATE verkocht SET medewerker_verwerkt = '$admin' WHERE verkocht_id='$id'";

    echo $sql;
}

您可以在ajax.php中執行以下操作來檢查$ _POST的結構。

echo '<pre>';
print_r($_POST);
echo '</pre>';
die;

您還應該注意SQL注入。

  1. select的函數名onchange事件是不同的! 你寫了onchange="chosenadmin(23)"而對於AJAX調用,名字是function changeadmin(verkochtid){...}

  2. 要獲得post中的值,必須在PHP中使用name

HTML

<form id="23" name="frm_admin" method="post">
    <select name="admin" onchange="chosenadmin(23)">
        <option value="rick">rick</option>
        <option value="john">john</option>
        <option value="dick">dick</option>
    </select>
    <input type="hidden" name="id" value="23" />
</form>

AJAX

function chosenadmin(verkochtid){
        id = verkochtid;
        console.log(id);
        $.ajax({
            url: 'winkels.php',
            id: id,
            type: 'POST',
            data: $('#'+id).serialize(),
            success: function(data, id){
                console.log(this.data);
                console.log(this.id);  
               }  
       });            
 };

PHP

if (isset($_POST["frm_admin"])) {
                $medewerker = $_POST["admin"];
                $verkoopid = $data["id"];
                $sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";  
                echo $sql;
 };

暫無
暫無

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

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