php - 发送回响应字符串以在 jQuery 的 ajax 函数中使用

标签 php javascript jquery ajax

我有一个发出帖子请求的功能。

$('#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 和 requests 的了解很少,我在控制台中看不到任何 success! 输出。 PHP 代码运行良好,并且 mysql 查询运行没有错误。

我想要的是能够在最后用 php 代码编写一些内容,以便我的 js 代码可以收到它作为肯定响应(例如 200,OK)和 success! 行然后(我相信)会出现在控制台中。

我应该在 php 文件中添加什么代码?

更新:由于很多人请求 php 代码,这里是 link到它。谢谢你们的快速回复,伙计们。

最佳答案

首先,您应该从 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);
        }
    }
}

不过,您可能想要使用警报以外的其他东西。但这取决于你。

关于php - 发送回响应字符串以在 jQuery 的 ajax 函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924255/

相关文章:

javascript - 字符串包括 : test the word from an array of strings

javascript - 你如何在angularjs中旋转图像

javascript - 以与 jQuery.proxy() 相同的方式调用 lodash _.bind() ?

javascript - Kendo ui 条形图宽度/条形的最大宽度

javascript - 提交表单 onchange 复选框

php - 页面加载时未出现对话框

javascript - 不要在循环中创建函数

javascript - 在 Javascript 中哪里添加 onsubmit 到表单

php - 使用 Drupal for AngularJS 从 MySQL DB 获取数据

php - 在一天中的某些时段从数据库中删除条目