javascript - ajax将信息发布到php $_POST中

标签 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 中设置它?

最佳答案

序列化时,$_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 注入(inject)。

关于javascript - ajax将信息发布到php $_POST中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44215516/

相关文章:

php - 我不想使用 openfire ofUser,而是想使用我的用户表

php - 如何在 PHP 中获取系统信息?

jquery - 打开模式窗口时不调用 console.log()

javascript - jQuery UI 对话框链接

javascript - 将 cron 转换为 "simpler"人类可读格式的包?

javascript - 非动态添加元素上奇怪的 CSS 错位

带有 ODBC 的 PHP 到远程数据库,驱动程序需要在哪里,我可以在连接上删除 SSL 吗?

javascript - AngularJS 自定义指令 ng-show/ng-hide

javascript - 使用 google api 地址更新 jQuery jqgrid 列

当元素位于视口(viewport)中时jquery触发函数