Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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
Php 使用JQuery从post()接收响应_Php_Javascript_Jquery_Ajax_Post - Fatal编程技术网

Php 使用JQuery从post()接收响应

Php 使用JQuery从post()接收响应,php,javascript,jquery,ajax,post,Php,Javascript,Jquery,Ajax,Post,我有一个脚本通过纯Javascript使用Ajax(POST方法)。 现在我正在尝试学习JQuery,因为它看起来更简单,但是我在请求的响应方面遇到了问题 $.post('ajax/wrapper.php', {'desc':$('#description').val()}, function(data){ $('#something').html(data); }); 当我这样做时,请求被成功发送。我可以看到数据库中的更改,但响应没有显

我有一个脚本通过纯Javascript使用Ajax(POST方法)。 现在我正在尝试学习JQuery,因为它看起来更简单,但是我在请求的响应方面遇到了问题

$.post('ajax/wrapper.php', {'desc':$('#description').val()},
        function(data){
            $('#something').html(data);
        });
当我这样做时,请求被成功发送。我可以看到数据库中的更改,但响应没有显示在div#something中。 我也试过了

...
   $('#something').html($(data));
...
提前感谢

试试:

$('#something').html($.ajax({
  type: "POST",
  url: "ajax/wrapper.php",
  async: false
 }).responseText)

你也可以这样试试

var jqxhr = $.post("ajax/wrapper.php",{desc:$('#description').val()}, function(data) {
      alert("success");
    });
success
回调中显示数据

jqxhr.complete(function(data){
  $('#something').html(data);
});

您可能需要使用$.load

$("#something").load('ajax/wrapper.php', {'desc':$('#description').val()} );
参考:

注释掉以下行:标题(“内容类型:text/xml;charset=iso-8859-1”)

请参阅和中的
数据类型
参数。您应该返回带有文本/HTML MIME类型的HTML,或者将
dataType
参数设置为“HTML”:

$.ajax('ajax/wrapper.php', {
    data: {'desc':$('#description').val()},
    dataType: 'html',
    type: 'POST',
    success: function(data){
        $('#something').html(data);
    }
}).then(console.log); // debug
第一种方法更可取,因为您实际上返回的是HTML,而text/HTML是正确的MIME方法。

尝试以下方法:

$.post('ajax/wrapper.php', {'desc':$('#description').val()},
        function(data){
            $('#something').html(data);
        }, "html");

你能看到firebug中的响应吗?你可以使用一些技术来调试它。我建议做的第一件事是下载Fiddler()。使用此选项可确定请求是否实际被发送,以及数据是否正确返回。接下来,在浏览器中回调函数的Javascript上设置断点。查看
数据中的内容。静态地设置
.html()
的参数可能也没有什么坏处,只是为了确保正确地选择了正确的元素expecting@3nigma,这两种方式都不重要。这是非常糟糕的做法。如果没有很好的理由,你不应该提出同步请求。我刚刚回答了这个问题。如果没有异步请求,您就无法执行此操作。它是有效的,但我希望使用$.post()方法(两种方法都可以吗?)。有同样的问题。显然,wrapper.php上的以下行就是问题所在:header(“内容类型:text/xml;charset=iso-8859-1”);load()不能与GET方法一起工作吗?无论如何,除了更改某些内容的内部html之外,我还需要做更多的事情,因此我认为使用post()会更容易。我将所有内容都更改为utf-8以避免将来的麻烦,但您的答案是正确的,我必须查看JQuery的数据类型和字符集。