Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Php jqueryajax插入和编辑_Php_Jquery_Mysql_Dropdown - Fatal编程技术网

Php jqueryajax插入和编辑

Php jqueryajax插入和编辑,php,jquery,mysql,dropdown,Php,Jquery,Mysql,Dropdown,在下面的函数中,我有两个post请求。一个用于在数据库中插入值(submit.php),另一个用于根据businessid(edit.php)编辑数据库中的现有值。但是,脚本只执行第一部分。也就是说,当选择“keuze”并单击submit时,脚本会很好地插入到数据库中。但是,当选择“keuze”以外的内容并单击submit时,脚本不会编辑数据库中的记录。我能做些什么来解决这个问题 submitformfunction: function(){ $(document).on('sub

在下面的函数中,我有两个post请求。一个用于在数据库中插入值(submit.php),另一个用于根据businessid(edit.php)编辑数据库中的现有值。但是,脚本只执行第一部分。也就是说,当选择“keuze”并单击submit时,脚本会很好地插入到数据库中。但是,当选择“keuze”以外的内容并单击submit时,脚本不会编辑数据库中的记录。我能做些什么来解决这个问题

 submitformfunction: function(){

     $(document).on('submit', '#form', function(){

        var data = $(this).serialize();
        var target = $('#busselect option:selected').val();
        var businessid = $('#busselect').children(":selected").attr("id");

        if(target == 'keuze'){

            $.ajax({

              type : 'POST',
              url  : 'submit.php',
              data : data,
              success :  function(data)
                   {
                        alert('Company added');
                   },
                error: function( jqXhr, textStatus, errorThrown ){
                    console.log( errorThrown );
                }
            });

        }
        else
        {

            $.ajax({

              type : 'POST',
              url  : 'edit.php',
              data : businessid+data,
              success :  function(data)
                   {
                        alert('Company modified');
                   },
                error: function( jqXhr, textStatus, errorThrown ){
                    console.log( errorThrown );
                }
            });
        }

    });

},
submit.php:

<?php

$mysqli = new mysqli("localhost", "root", "", "brandveiligheid");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if($_POST )
{

     $naam = addslashes(htmlentities($_POST['uitgevoerd_door_naam']));


     $mysqli->query("INSERT INTO form (uitgevoerd_door_naam) 
     VALUES ('$naam')");

}

mysqli_close($mysqli);

?>

查询中似乎存在问题,因为“$\u POST[business\u id]”将假定为varchar,而数据库中id的数据类型必须为int。试试下面

"UPDATE form SET uitgevoerd_door_naam='$naam' WHERE id=addslashes(htmlentities($_POST[business_id]))"

还要始终确保查询的安全;)

做几步,让我知道你得到了什么, 1.在edit.php中

if($_POST )
{

    $naam = addslashes(htmlentities($_POST['uitgevoerd_door_naam']));

echo $query = "UPDATE form SET uitgevoerd_door_naam='$naam' WHERE id='$_POST[business_id]'";

    $mysqli->query($query);

}
  • 在js中: 其他的 {


  • 让我知道你在警报中得到了什么。

    你说过“不更新”。
    edit.php
    文件会触发吗?你使用过浏览器的开发者“网络”吗选项卡进行故障排除?AJAX调用是否失效?您很容易受到攻击,并且您的编辑AJAX调用失败,因为您传入的
    test+businessid
    test
    似乎不存在于您的代码中,并且会生成一个PHP无法识别为
    key=value
    表单提交的数字/字符串,将$\u POST留白。仅供参考,很好作业格式化你的代码-它看起来不错!你可以考虑三件事:双线提要只创建开放空间,所以删除双行提要-使你的代码> IF-({)/<代码>格式一致-在某些地方,它在同一行上,在某些地方<<代码> >{
    本身就在一行上-最后,不要在PHP文件末尾使用
    ?>
    。现在认为最好的做法是省略PHP文件末尾的内容。请确认,您是否尝试了
    警报(目标)
    在if循环之前?当您选择除“keuze”之外的其他选项时会发生什么?亲爱的Shrikant,是的,我尝试了,它会产生正确的值。此外,@cale_b tnx用于提到的网络选项卡。ajax调用确实转到edit.php.Thx,用于注释addslashes和htmlentities:)。但是,我尝试了您的解决方案,仍然无法编辑.add斜杠(HtmlEntes(…)对此进行转义是完全不合适的。您应该使用准备好的语句,但更快的修复方法是:
    “更新表单集UITGEVORD\u door\u naam='$naam'其中id='”。$mysqli->real\u escape\u string($\u POST['business\u id'])。“”
    或者,如果
    id
    是一个int列,请使用
    intval
    而不是
    $mysqli->real\u escape\u string
    。这可能是一个非常愚蠢的问题,但我需要做些什么才能在警报中看到回声的输出?
    if($_POST )
    {
    
        $naam = addslashes(htmlentities($_POST['uitgevoerd_door_naam']));
    
    echo $query = "UPDATE form SET uitgevoerd_door_naam='$naam' WHERE id='$_POST[business_id]'";
    
        $mysqli->query($query);
    
    }
    
        $.ajax({
    
          type : 'POST',
          url  : 'edit.php',
          data : test+businessid,
          success :  function(test)
               {
                    alert(test);
                    alert('Company modified');
               },
            error: function( jqXhr, textStatus, errorThrown ){
                console.log( errorThrown );
            }
        });
    }