从jQuery ajax调用返回php变量

时间:2017-05-16 02:16:44

标签: php jquery ajax

我确定这是一个简单的解决方案,但是我的尝试没有成功,因为我的jQuery& ajax并不是最伟大的。我正在对我的php脚本进行ajax调用,该脚本正在对表单进行错误检查。如果有错误,我显示一个隐藏的div并显示错误消息没问题。但是,如果没有错误消息,我想要出现警报。问题是没有错误时警报不会显示

Javacript

        $.ajax({
         url: '../assets/inc/process.php',
         type: 'post',
         data: formData, 
         dataType: 'html'
            })
            .always(function(data){
                if (data == 'success'){
                    alert('it worked!');
                }
                else{
                    $('#responsediv').show();
                    $('#responsediv').html(data);
                }
             });
        });

我也试过

          if (data.success == 'success'){
                alert('it worked!');
            }
            else{
                $('#responsediv').show();
                $('#responsediv').html(data);
            }

PHP

  if ($result_new_row){
        $success = 'success';
        echo $success;
  } 

我确信我正在插入新行,因为我可以在数据库中看到它。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

将数据作为数组从PHP传回(PS数据类型应为json)

PHP

 if ($result_new_row){
        $return['result'] = 'success';
        //comment this out when you are positive it's working
        echo "hello";
  } else {
        $return['result'] = 'error';
  }
  print(json_encode( $return);

的jQuery

    $.ajax({
     url: '../assets/inc/process.php',
     type: 'post',
     data: formData, 
     dataType: 'json'
        })
        .always(function(data){
            if (data.result == 'success'){
                alert('it worked!');
            } else {
                $('#responsediv').show();
                $('#responsediv').html(data);
            }
         });
    });

如果没有正确返回,请确保您的PHP功能实际上正常工作。

如果您使用Chrome,则可以通过打开检查器并切换到网络标签来查看您的AJAX调用,然后单击XHR将显示每个AJAX请求,正在发送的内容和响应。