使用Ajax调用PHP来更新MySQL中的数据

时间:2017-11-21 18:32:46

标签: php jquery ajax

我一直在研究这个问题,并且有很多类似的问题已被提出。我尽可能多地尝试研究并提出了应该在理论上工作的代码......但无论出于何种原因,它都没有。我似乎无法弄明白!

我正在使用JQuery / AJax来调用php文件并更新SQL记录。这是代码的一般要点。遗漏的东西本质上是一个按钮点击动作,它调用ajax函数。 Php将(最终)将StoreID值添加到数组中,将其序列化并将其添加到mysql中。

每段代码都是自己工作的,但是当它们放在一起时它就不起作用了!

Java脚本代码:

jQuery.ajax({
           type: 'POST',
           url: 'storeid.php',
           data: {StoreID: IDjs[x] },
           success: function(reponse) { 
                $('#error').html('Success! SkipID: ' + IDjs[x]);                     
                onStateNext(); },
           error : function(code, message){
                $('#error').html('Error Code: ' + JSON.stringify(code) + ', Error Message: ' + JSON.stringify(message));}
           });          

关于这段代码的奇怪之处在于,“Success”函数得到了输出。显示成功回调并运行正在进行的脚本..尽管事实上它似乎并没有将StoreID变量实际发送到php文件。

PHP代码(storeid.php):

$test=$_POST['StoreID'];
if (isset($test)) 
{
    global $conn2;
    $memberid = $_SESSION['memberID'];
    $testarray = array(7,8,$test);
    $serialized_data = serialize($testarray);                             
    $insertsql = "UPDATE StoreIDs SET IDs = '$serialized_data' WHERE MemberID = $memberid";
     if (mysqli_query($conn2, $insertsql)) 
     {
         echo "Updated with StoreID: " . $test;
      } else {
          echo "Error updating record: " . mysqli_error($conn2);
      } 
} else {echo "no isset value"; }

此代码在没有ajax的情况下运行时也有效。当由php直接调用时它会正确更新记录,但在上面的ajax脚本调用时则不会。

我能做错的任何想法?

1 个答案:

答案 0 :(得分:0)

感谢@JayBlanchard。您可以使用firefox开发人员工具查看服务器响应,这样可以查看错误消息并意识到它正在进行通信,但只是无法从数据库中获取凭据。

如果未包含数据库文件,则无法使用全局变量。我认为它不需要它,因为它在运行服务器端时工作正常,但由于ajax在服务器关闭数据库连接后运行客户端,因此需要再次打开它!