简单的jQuery + PHP无法运行

时间:2015-06-10 04:25:03

标签: javascript php jquery ajax

我的javascript中有以下代码:

$.ajax({
    url : 'update_data.php',
    type : 'POST',
    data : 'asdfasd', //d,
    success : function(response){
        console.log(response);
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log('jqXHR.responseText:  ' + jqXHR.responseText);
        console.log('jqXHR.responseXML :  ' + jqXHR.responseXML);
        console.log('textStatus:   ' +  textStatus);
        console.log('errorThrown:   ' + errorThrown);
    },
    dataType : 'text'
});

这是我的'update_data.php':

<?php
    echo json_encode($_POST);
    if (isset($_POST['data'])){
        echo "here!";
    } else {
        echo "failed jquery";
    }
?>

当我运行Ajax方法时,我在控制台中得到以下响应:

[]failed jquery

表示update_data.php没有收到任何POST请求。 '[]'来自json_econd($ _ POST),'失败的jquery'来自if / else。

我做错了什么?

4 个答案:

答案 0 :(得分:7)

你需要传递数据如下

 data : {'data':'asdfasd'},

如果想传递多个参数,那么

data : {'data':'asdfasd','param1':'value','param2':'value'},

或提交表格数据

data : $( "formselector" ).serialize(),

ajax中的数据参数

  

键入:PlainObject或String或Array要发送到服务器的数据。它   如果不是字符串,则转换为查询字符串。它是附加的   到GET请求的URL。请参阅processData选项以防止这种情况   自动处理。对象必须是键/值对。如果价值是   Array,jQuery使用相同的密钥序列化多个值   传统环境的价值(如下所述)。

阅读有关jquery ajax parameters HERE

的更多信息

答案 1 :(得分:0)

你的句子$(document).ready(function() { //sDeleteURL: "/Home/DeleteData.php" $('#myTable').dataTable().makeEditable( { // some basic config 'bProcessing': true, 'bServerSide': true, 'sAjaxSource': "admin/json_get_countries", stateSave: true, "scrollCollapse": true, "language": { "lengthMenu": "Display _MENU_ records per page", "zeroRecords": "Nothing found - sorry", "info": "Showing page _PAGE_ of _PAGES_", "infoEmpty": "No records available", "infoFiltered": "(filtered from _MAX_ total records)" } } ); } ); // end of on doc load 只是回复你的AJAX请求的回复。所以它下面的代码不起作用。尝试评论这句话并再次运行。我想你可以看到&#34;在这里!&#34;在控制台中。

答案 2 :(得分:0)

你犯了两个错误:

1:在jquery中你必须发送如下数据: data : {'data':'asdfasd'}

2:在&quot; update_data.php&#39; :json_encode位于脚本的最后一个

答案 3 :(得分:0)

无论何时使用ajax,总是将数据作为大括号内的键值对传递为:

data = {'data':'asdfasd'}
  • 如果您使用此类数据传递,那么它将始终有效。
  • 另一件事是,如果您想提交完整的表单数据,请尝试将表单的序列化数据发送为:
  

data = $(&#39;#form_id&#39;)。serialize();

这将在$ _GET -r $ _POST中为您的php页面提供所有表单数据,无论您使用哪种方法作为ajax。