Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$.post将基本JSON发送到php,并带有回调_Javascript_Php_Jquery_Json - Fatal编程技术网

Javascript 使用$.post将基本JSON发送到php,并带有回调

Javascript 使用$.post将基本JSON发送到php,并带有回调,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我的问题基本上是,我无法理解正确的语法(以前从未使用过JSON),无论是在js还是PHP方面,但我认为一旦我理解了js,我就可以自己理解PHP方面的内容 逻辑目标:发送存储变量id#和常量字符串“del”的JSON数据,接收包含成功/错误信息的JSON数据,然后根据成功/错误,将结果回送到不同的html中我最感兴趣的是学习发送和处理接收到的json的javascript代码,我认为PHP处理应该更简单,我自己就能理解(希望如此) 编辑——当我说成功/错误时,我希望在PHP代码中确定,而不是真正的

我的问题基本上是,我无法理解正确的语法(以前从未使用过JSON),无论是在js还是PHP方面,但我认为一旦我理解了js,我就可以自己理解PHP方面的内容

逻辑目标:发送存储变量id#和常量字符串“del”的JSON数据,接收包含成功/错误信息的JSON数据,然后根据成功/错误,将结果回送到不同的html中我最感兴趣的是学习发送和处理接收到的json的javascript代码,我认为PHP处理应该更简单,我自己就能理解(希望如此)

编辑——当我说成功/错误时,我希望在PHP代码中确定,而不是真正的硬错误。因此,最好将其看作jQuery回调函数部分中的
if
语句

$(".admin_ru_delete_button").click(function() { //this code is not working
    id = ($(this).attr("id"));
    dataJson = { "id":id, "type":"del" };
    $.post(
        'ajax/justPosted_AJAX.php',
        dataJson,
        function(data){
            //$("#admin_errors").html('');
            //$("#admin_success").html('');
        }
      , "json");
  return false;
});

非常感谢您的时间/帮助

数据从javascript对象转换为POST变量-JSON与此无关(除了PHP->JS部分)

在您的回调中(该回调自动转换为对象,正如您指定的内容类型“json”):

如果希望在未返回JSON时出错,可以使用
$.ajax

$.ajax(
    'ajax/justPosted_AJAX.php',
    {
        dataType: 'json',
        data: dataJson,
        success: function(data){
            if (data.success) {
                alert('Yay! The ID I sent was ' + data.id);
            } else {
                alert(data.error);
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('The AJAX call failed: ' + textStatus + ' / ' + errorThrown);
        }
    }
);
您可以尝试:

Javascript

$(".admin_ru_delete_button").click(function() { 
    id = ($(this).attr("id"));
    $.ajax(
        type: "POST",
        dataType: "JSON",
        url: 'ajax/justPosted_AJAX.php',
        data: { "id":id, "type":"del" },
        success: function(data){
            $("#admin_success").html(data[1] +" "+ data[2]);
        }
        error: function(data){
            console.Log("Error in ajax");
    });
  return false;
});

这是假设您使用
json\u encode($array)

从PHP返回JSONObject/JSONArray,他说:“我最感兴趣的是学习发送和处理接收到的json的javascript代码”@WayneWhitty,但他补充说,他不知道确切的PHP,但认为可能必须对其进行json解码,事实并非如此。我已经添加了一个关于如何处理来自PHP和JSON的JSON的描述。感谢您提供的PHP/JS代码,我相信这会为我节省一些时间。此时,主要的问题仍然是我的js
$.post
代码没有正确地/根本没有将数据发送到PHP文件。@HC_u为什么您认为它没有正确地发送数据?数据包检查器(如Firebug/Chrome的开发者工具/Fiddler2)告诉您它发送了什么?@H2Ooooo Chrome在控制台中没有说任何内容><这就是我来这里的主要原因:没有错误报告。根据文档,在
$.post
调用中定义的函数是一个成功处理程序,如果PHP返回的文档没有错误代码,则会调用该函数。如果您想使用HTTP状态来控制成功/失败,那么文档中有关于失败处理程序的更多信息,否则,成功处理程序中的
数据
可以是类似于
{“errState”:false,“somekey”:{…}
的JSON文档,然后您可以使用
数据[“errState”]在成功处理程序中进行检查
。在Firebug网络面板或Webkit网络面板中检查响应!我知道这听起来很明显,但是。。。你把jQuery导入网页了吗?嗯。。哦,是的,我写得很匆忙。谢谢你的轻推。如果他想处理
成功
错误
,他应该使用一个简单的$.ajax调用。
$.ajax(
    'ajax/justPosted_AJAX.php',
    {
        dataType: 'json',
        data: dataJson,
        success: function(data){
            if (data.success) {
                alert('Yay! The ID I sent was ' + data.id);
            } else {
                alert(data.error);
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('The AJAX call failed: ' + textStatus + ' / ' + errorThrown);
        }
    }
);
$(".admin_ru_delete_button").click(function() { 
    id = ($(this).attr("id"));
    $.ajax(
        type: "POST",
        dataType: "JSON",
        url: 'ajax/justPosted_AJAX.php',
        data: { "id":id, "type":"del" },
        success: function(data){
            $("#admin_success").html(data[1] +" "+ data[2]);
        }
        error: function(data){
            console.Log("Error in ajax");
    });
  return false;
});