Php 使用ajax传递数组-无法打印
我希望这个问题很简单,我自己似乎想不出解决办法。好吧,我有一个使用scriptaculous和prototype的drag'n'drop+排序功能,可以在我的index.php上找到您的信息。我使用此代码发送div中丢弃的项目,使用此代码: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
<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);