Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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/2/jquery/76.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 不传递任何POST值的Ajax调用_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 不传递任何POST值的Ajax调用

Php 不传递任何POST值的Ajax调用,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我有一张有可排序行的表。该表是从mysql数据库生成的,该数据库有一个名为“displayorder”的字段对该表进行排序。当用户拖放行时,我希望在用户每次拖放行时使用AJAX将这些更改提交到数据库 目前,我可以看到AJAX调用成功部分的console.log()输出,当我在那里输出数据(顺序)时,它看起来很棒,如下所示: [“订单1=1”、“订单2=2”、“订单4=3”、“订单3=4”] 但是根据Firebug的说法,所有在$u帖子中传递的信息都是“未声明的”。 如何从indexpage\u

我有一张有可排序行的表。该表是从mysql数据库生成的,该数据库有一个名为“displayorder”的字段对该表进行排序。当用户拖放行时,我希望在用户每次拖放行时使用AJAX将这些更改提交到数据库

目前,我可以看到AJAX调用成功部分的console.log()输出,当我在那里输出数据(顺序)时,它看起来很棒,如下所示:
[“订单1=1”、“订单2=2”、“订单4=3”、“订单3=4”]

但是根据Firebug的说法,所有在$u帖子中传递的信息都是“未声明的”。 如何从indexpage\u order.php文件访问该order变量

我有这个jquery代码:

    <script>
    $(document).ready(function() {
        var fixHelper = function(e, tr) {
            var $originals = tr.children();
            var $helper = tr.clone();
            $helper.children().each(function(index)
            {
              $(this).width($originals.eq(index).width())
            });
            return $helper;
        };
        var sortable = $("#sort tbody").sortable({
        helper: fixHelper,
        stop: function(event, ui) {
            //create an array with the new order
            order = $(this).find('input').map(function(index, obj) {
                var input = $(obj);
                input.val(index + 1);
                return input.attr('id') + '=' + (index + 1);
            });
            $.ajax({
                    type: 'POST',
                    url: 'indexpage_order.php',
                    data: order,
                error: function() {
                    console.log("Theres an error with AJAX");
                },
                success: function(order) {
                    console.log("Saved.");
                    console.log(order);
                }
            });
            return false;
        }
        });
    });
    </script>

使用ajax在PHP file for POST方法上尝试$\u REQUEST而不是$\u POST。

看起来您是在JavaScript数组中发送订单的

当它到达PHP时,它是不可读的

如果是对象,请查看函数。 如果它是一个数组,则在数据开始之前序列化数据,然后在php端


除非正确编码/序列化JavaScript数组或对象,否则PHP无法理解这些数组或对象。

将js数组
顺序
转换为json对象,因为ajax数据需要使用
json.stringify
以json格式。因此,它需要是ajax函数中的
data:JSON.stringify(order),


或者,在ajax函数中使用
json\u encode
如下
data:,

您可以简单地重写生成POST数据的js代码

order = {}
$(this).find('input').map(function(index, obj)
  { 
    return order[this.id] = index;
  }
)

Rest应该在PHP中工作

订单是一个数组。在ajax脚本中将
顺序
转换为
查询字符串


数据:order.join('&'),

最有可能的
顺序
格式不正确。您应该能够简单地使用
$(this).find('input').serialize()
您可以执行
控制台.log(order)
和代码中的适当点并向我们显示结果吗?作为旁注。。。似乎您正试图在SQL查询中直接使用来自
$\u POST
超级全局的数据。决不能在SQL查询中直接使用
$\u POST
$\u GET
数据。这是SQL注入()的一个非常简单的目标。在SQL查询中使用数据之前,应始终清理来自用户的数据。这篇文章写得不错:console.log(order)在ajax调用中是“success”。在我的其他文件中显示[“order_1=1”、“order_2=2”、“order_4=3”、“order_3=4”]@c.hill,我正在用preg_替换进行消毒。我将在代码的其余部分正常工作后添加它。谢谢没有变化。我仍然在Firebug中获得列为“undefined”x4的POST值,源代码列为“undefined=&undefined=&undefined=&undefined=&undefined=&undefined=”我对此感到厌倦,现在我根本没有得到任何$\ POST。排序仍然有效,但我没有从AJAX调用中获得失败或成功消息。您能做一件事吗,请将
警报(顺序)
放在
$之前。AJAX({
并告诉我您在警报框中看到了什么这非常有效!!感谢您提供了一个简单、简单、简洁的答案!
order = {}
$(this).find('input').map(function(index, obj)
  { 
    return order[this.id] = index;
  }
)