发送回要在jQuery中使用的响应字符串';s的ajax函数


Send back response string to use in jQuery's ajax function

我有一个用于发出post请求的函数。

$('#save').click( function() {
  ...
  $.ajax({
    type: 'POST',
    url: 'logic/save.php',
    data: { 'json': JSON.stringify( post ) },
    dataType: 'jsonp',
    success: function( data ) {
      console.log('success!')
    }
  });
} 

如您所见,请求处理程序是用php编写的,并使用mysql执行操作。由于我对php和请求的了解不多,我没有看到任何成功控制台中的输出。Php代码运行良好,mysql查询运行无错误。

我想要的是能够在最后用php代码编写一些东西,这样我在js中的代码就可以收到积极的响应(比如200,好吧),并获得的成功行将出现(我相信)。

我应该向php文件添加哪些代码?

更新:因为很多人请求php代码,这里有它的链接。谢谢你们的快速回复,伙计们。

首先,您应该从jsonp切换到json,因为在这种情况下您不需要jsonp。以下说明假设您已经进行了更改。

当您回复客户端时,错误就出现在您的PHP代码中。您可以使用以下行:

print_r( "New item inserted.'n" );

然而,jQuery希望您从端点返回JSON(说实话,它应该返回,因为向ajax客户端发送明文几乎从来都不是正确的方式)。我们可以通过将上面的行更改为以下内容来使用jQuery:

print json_encode( array('success' => true, 'message' => "New item inserted." ) );

您应该发现自己处于客户端的成功回调中。此代码适用于您的成功处理程序:

{ // ...,
    success: function(response) {
        if (response.success) {
            alert(response.message);
        }
    }
}

不过,您可能想要使用除警报之外的其他功能。但这取决于你。