ajax将信息发布到php $ _POST中

时间:2017-05-27 10:05:42

标签: javascript php jquery ajax 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中设置它?

2 个答案:

答案 0 :(得分:0)

序列化时,$ _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 :(得分:0)

  1. 选择的函数名onchange事件不同!你写了onchange="chosenadmin(23)",而对于AJAX,你的名字是function changeadmin(verkochtid){...}

  2. 要获得帖子中的值,您必须使用PHP中的名称

  3. 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;
     };