Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax将信息发布到php$\u post中_Javascript_Php_Jquery_Ajax_Post - Fatal编程技术网

Javascript ajax将信息发布到php$\u post中

Javascript ajax将信息发布到php$\u post中,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,我正试图从我的ajax中获取信息,并将其放到一篇PHP$\u文章中,以便更新我的数据库 HTML <form id="23" method="post"> <select name="admin" onchange="chosenadmin(23)"> <option value="rick">rick</option> <option value="john">john</option>

我正试图从我的ajax中获取信息,并将其放到一篇PHP$\u文章中,以便更新我的数据库

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

序列化时,$\u 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>
您可以在ajax.php中执行以下操作来检查$\u POST的结构

echo '<pre>';
print_r($_POST);
echo '</pre>';
die;
echo';
打印(邮政美元);
回声';
死亡

您还应该注意SQL注入

序列化时,$\u 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>
您可以在ajax.php中执行以下操作来检查$\u POST的结构

echo '<pre>';
print_r($_POST);
echo '</pre>';
die;
echo';
打印(邮政美元);
回声';
死亡
您还应该注意SQL注入

  • select的更改事件的函数名不同!您已经编写了
    onchange=“chosenadmin(23)”
    对于AJAX调用,名称是
    函数changeadmin(verkochtid){…}

  • 要在post中获取值,必须在PHP中使用name

  • HTML

    PHP

  • select的更改事件的函数名不同!您已经编写了
    onchange=“chosenadmin(23)”
    对于AJAX调用,名称是
    函数changeadmin(verkochtid){…}

  • 要在post中获取值,必须在PHP中使用name

  • HTML

    PHP


    放置
    print\r($\u POST)
    在PHP代码前面,查看数据传输的内容和方式。没有发生
    $\u POST[“序列化”]
    事件。但是应该有一个
    $\u POST['admin']
    echo$\u POST[“serialize”]这是什么?你的脚本有可能会看到甚至使用@riggsfully都发生了什么,我从打印中得到了一个数组(),我拿走了准备form@RanjeetSingh未定义的索引:序列化放置一个
    print\r($\u POST)
    在PHP代码前面,查看数据传输的内容和方式。没有发生
    $\u POST[“序列化”]
    事件。但是应该有一个
    $\u POST['admin']
    echo$\u POST[“serialize”]这是什么?你的脚本有可能会看到甚至使用@riggsfully都发生了什么,我从打印中得到了一个数组(),我拿走了准备form@RanjeetSingh未定义索引:如果使用print\u r($\u POST),则序列化;它说:如果我使用print_r($_POST[“id”]),则为array();它说:未定义的索引:id。如果我做了更改,这并不重要。控制台日志会给我返回好的值,对不起,如果您尝试在浏览器中使用调试器检查Ajax调用的请求头和负载,php中仍然没有发生任何事情?如果我使用print\r($\u POST);它说:如果我使用print_r($_POST[“id”]),则为array();它说:未定义的索引:id。如果我做了更改,这并不重要。控制台日志会给我返回好的值。对不起,伙计们,如果您尝试在浏览器中使用调试器检查Ajax调用的请求头和负载,php中仍然没有发生任何事情。对不起,伙计们,php中仍然没有发生任何事,无法将整个$\u POST数组打印到php文件中。仍然只是array(),我尝试了document.getElementById(“test”).innerHTML=(this.data);这也起到了作用。请确保您正在通过AJAX发布页面,并尝试在控制台上打印$(“#”+id)的日志。serialize()抱歉,伙计们,在php文件中仍然没有发生任何事情来将整个$u POST数组打印到php文件中。仍然只是array(),我尝试了document.getElementById(“test”).innerHTML=(this.data);这也起到了作用。请确保您正在通过AJAX发布页面,并尝试在控制台上打印$(“#”+id)的日志
    <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>
    
    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);  
                   }  
           });            
     };
    
    if (isset($_POST["frm_admin"])) {
                    $medewerker = $_POST["admin"];
                    $verkoopid = $data["id"];
                    $sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";  
                    echo $sql;
     };