Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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 使用ajax传递数组-无法打印_Php_Sql_Ajax_Parsing - Fatal编程技术网

Php 使用ajax传递数组-无法打印

Php 使用ajax传递数组-无法打印,php,sql,ajax,parsing,Php,Sql,Ajax,Parsing,我希望这个问题很简单,我自己似乎想不出解决办法。好吧,我有一个使用scriptaculous和prototype的drag'n'drop+排序功能,可以在我的index.php上找到您的信息。我使用此代码发送div中丢弃的项目,使用此代码: <script type="text/javascript"> //<![CDATA[ document.observe('dom:loaded', function() { var changeEffect

我希望这个问题很简单,我自己似乎想不出解决办法。好吧,我有一个使用scriptaculous和prototype的drag'n'drop+排序功能,可以在我的index.php上找到您的信息。我使用此代码发送div中丢弃的项目,使用此代码:

<script type="text/javascript">
//<![CDATA[  
    document.observe('dom:loaded', function() {  
        var changeEffect;  
    Sortable.create("selectedSetupTop", {containment: ['listStr', 'selectedSetupTop'], tag:'img', overlap:'vertical', constraint:false, dropOnEmpty: true,
        onChange: function(item) {
            var list = Sortable.options(item).element;
            $('changeNotification').update(Sortable.serialize(list).escapeHTML());
            if(changeEffect) changeEffect.cancel();
            changeEffect = new Effect.Highlight('changeNotification', {restoreColor:"transparent" });
        },          
        onUpdate: function(list) {
            new Ajax.Request("script.php", {
                method: "post",
                parameters: { data: Sortable.serialize(list), container: list.id }
                onLoading: function(){$('activityIndicator').show(), $('activityIndicator2').hide()},
                onLoaded: function(){$('activityIndicator').hide(), $('activityIndicator2').show()},
            });             
        }
        });
    });  
// ]]>  
</script>   
其中,$arrayInStringFormat是将数组$selectedSetupTop转换为格式1、2、3、4。我想我会使用内爆或其他方法来解决这个问题,但问题是解析数组$selectedSetupTop。我一点也不担心它会在页面之间传递,非常感谢您的帮助!如果我需要进一步解释,请告诉我

提前谢谢

编辑1 如果有帮助的话,我以前使用过这个代码,我知道它会发送数据给我并使用它。注意,我不想像下面那样完成任务:

$querySetup = $_GET["s"];
parse_str($_POST['data']);  
for ($i = 0; $i < count($selectedSetupTop); $i++) {  
    $sql = mysql_query("UPDATE " . $querySetup . " SET orderId = $i, hero_selected = 'n' WHERE imageId = $selectedSetupTop[$i]") or die(mysql_error());    
}
编辑2
所以它可以解析,但是我仍然有一个问题,我不能打印它。我想以某种方式使数组内爆。

不确定AJAX在Scripticious/Prototype中是如何工作的,但您似乎没有从AJAX调用中获得数据。在jQuery中,您从脚本接收的数据将作为函数的参数返回

onLoaded: function(msg){
    $('activityIndicator').hide(),
    $('activityIndicator2').show(),
    alert(msg)
}
其次,您不能回显PHP数组,必须将其编码为JSON:

echo json_encode($test);

使用FireFox+Firebug的“网络”选项卡查看哪些数据在来回传输。它可能会给你一个线索,谢谢你的建议!我只是这么做了,但它似乎没有通过。您是否看到代码中有任何可能错误的地方?忘记前面的注释,它确实会发送!选中了params而不是post。但是在我的script.php页面上打印它仍然有问题。对,但我的意思是回调函数接收数据。根据Firebug,它会发送数据给我。如下所示:容器selectedSetupTop数据selectedSetupTop[]=19&selectedSetupTop[]=1&selectedSetupTop[]=54&selectedSetupTop[]=2
onLoaded: function(msg){
    $('activityIndicator').hide(),
    $('activityIndicator2').show(),
    alert(msg)
}
echo json_encode($test);