当前位置: 首页 > 面试题库 >

jQuery AJAX使用JSON返回对PHP脚本的调用

赫连晋
2023-03-14
问题内容

我一直在用这个把头砸在砖墙上,我已经尝试了很多关于stackoverflow的解决方案,但是找不到一个可行的解决方案!

基本上,当我发布我的AJAX时,PHP返回JSON,但AJAX显示的是Undefined而不是值:

JS

  /* attach a submit handler to the form */
  $("#group").submit(function(event) {

  /* stop form from submitting normally */
  event.preventDefault();

  /*clear result div*/
  $("#result").html('');

  /* get some values from elements on the page: */
  var val = $(this).serialize();

  /* Send the data using post and put the results in a div */
  $.ajax({
      url: "inc/group.ajax.php",
      type: "post",
      data: val,
  datatype: 'json',
      success: function(data){
            $('#result').html(data.status +':' + data.message);   
            $("#result").addClass('msg_notice');
            $("#result").fadeIn(1500);           
      },
      error:function(){
          $("#result").html('There was an error updating the settings');
          $("#result").addClass('msg_error');
          $("#result").fadeIn(1500);
      }   
    }); 
});

PHP的

  $db = new DbConnector();
  $db->connect();
  $sql='SELECT grp.group_id, group_name, group_enabled, COUNT('.USER_TBL.'.id) AS users, grp.created, grp.updated '
        .'FROM '.GROUP_TBL.' grp '
        .'LEFT JOIN members USING(group_id) '
        .'WHERE grp.group_id ='.$group_id.' GROUP BY grp.group_id';

    $result = $db->query($sql);     
    $row = mysql_fetch_array($result);
    $users = $row['users'];
    if(!$users == '0'){
        $return["json"] = json_encode($return);
        echo json_encode(array('status' => 'error','message'=> 'There are users in this group'));
    }else{

        $sql2= 'DELETE FROM '.GROUP_TBL.' WHERE group_id='.$group_id.'';
        $result = $db->query($sql2);

        if(!$result){
            echo json_encode(array('status' => 'error','message'=> 'The group has not been removed'));
        }else{
            echo json_encode(array('status' => 'success','message'=> 'The group has been removed'));
        }
    }

firebug的JSON结果

{"status":"success","message":"success message"}

AJAX将JSON结果显示为Undefined,我不知道为什么。我尝试显示添加dataType='json'datatype='json'。我也曾尝试将其更改为data.statusand
data['status']:尽管仍然没有乐趣。

任何帮助将非常感激。


问题答案:

dataType代替它datatype

并在php中添加以下代码,因为您的ajax请求要求使用json,并且不接受任何内容,但json。

header('Content-Type: application/json');

在萤火虫中可见的响应是文本数据。检查Content- Type响应标头以验证响应是否为json。它应该是application/jsondataType:'json'text/htmldataType:'html'



 类似资料:
  • 问题内容: 我想从PHP脚本返回JSON。 我只是回应结果吗?我必须设置标题吗? 问题答案: 通常,没有它会没事,但是您可以并且应该设置Content-Type标头: 如果不使用特定的框架,通常会允许一些请求参数来修改输出行为。通常,为了快速进行故障排除,不发送标头,或者有时将数据有效载荷print_r盯着它很有用(尽管在大多数情况下,它不是必需的)。

  • 问题内容: 我是WordPress设计师,我为自己的主题之一开发了联系表格,该主题已通过jQuery验证。 请检查下面的代码,然后阅读下面的注释。 笔记: sendEmail.php是使用PHPmailer类发送电子邮件的正确脚本。 templatePath变量具有如下所示的完整模板路径的值:http : //somedomain.com/wp-content/themes/themename 上

  • 问题内容: 我一直在用这个把头砸在砖墙上,我已经在stackoverflow上尝试了很多解决方案,但找不到一个可行的方案! 基本上,当我发布我的AJAX时,PHP返回JSON,但是AJAX显示Undefined而不是值: JS : PHP的 : firebug的JSON结果 : AJAX将JSON结果显示为Undefined,我不知道为什么。我尝试显示添加和。我也曾尝试将其更改为and:尽管仍然没

  • 问题内容: 我有2个DropDownList,例如Master-Slave。这是我的Default.aspx: 这是我的脚本: 和我的处理程序: 但没有要追加的内容。另外,我在firebug窗口中看到如下响应(当我从Master ddl中选择G2时): 对于更具体的视图,下图是当我在Master ddl中选择G3时,firebug窗口中的JSON选项卡: 我用这个新的脚本来更改脚本的成功方法: 当

  • 问题内容: 基本上我想做的是返回mysql查询的结果。我知道如何将查询结果的每一行放入其自己的JSON对象中,现在我正在努力寻找一种方法,以便在有多行结果将其返回给我的jquery时使用。在我的jquery中,我调用了$ .ajax()函数,对此我没有任何问题。我的问题在于成功部分,我希望能够执行以下操作: 我希望能够像JSON对象数组一样遍历结果变量。结果变量是一个字符串,由php文件的所有输出

  • 用途:使用php将命令直接输入minecraft服务器控制台 我正在尝试使用php脚本(从浏览器运行)来执行shell脚本。当我从终端运行php时,它就可以工作了!但在浏览器中,什么都不会发生。 从终端运行时,我得到一个“数组0”,但浏览器给我一个“数组1” 问题是什么?一旦我运行了shell,之后的一切不应该像在终端上一样工作吗?(shell脚本内部的内容是否重要?) shell拥有所有rx权限