我有一些使用JQUERY的AJAX代码,并尝试使用javascript来定义通过POST发送到update_DBO.php的数组
我在这里有脚本......
<script>
$(function() {
$( "#sortable1" ).sortable({
update: function(event, ui) {
var fruitOrder = $(this).sortable('toArray').toString();
var fruitnumbers = fruitOrder.replace(/[,]/g, "");
var fruitarray = fruitnumbers.split("");
jQuery.ajax({
type: "POST",
url: "update_DBO.php",
data: { fruitarray : fruitarray },
cache: false,
success: function(response)
{
alert(fruitarray);
$('#sortable1').addClass('greenbg', 350, 'linear').delay(50);
$('#sortable1').removeClass('greenbg', 1200, 'linear').delay(50);
document.write('fruit: ');
document.write(fruitarray);
}
});
}
});
});
</script>
因此。
问题在于它似乎根本没有计算任何果实水果或它没有通过它或document.write它。它似乎只是空了
非常感谢任何解决这个难题的帮助。谢谢!
答案 0 :(得分:1)
document.write
。它只能在首次加载页面时使用,而不能异步加载。如果这是用于调试,请使用console.log()
并在JavaScript控制台中查看结果。您也可以使用它来代替alert()
进行调试。response
参数中的结果执行任何操作。alert()
.addClass( 'greenbg', 350, 'linear' )
应该做什么?听起来你的意思是在这里使用.animate()
。如果它是一种变色效果,请注意您需要使用实际颜色值设置动画,这是动画引擎可以插入的内容。在一段时间内线性添加一个类名甚至意味着什么?一次添加一个字母? : - ).delay()
来电不会做任何事情。它们只影响动画队列。如果您使用.animate()
,则可以使用.delay()
,但我会将所有相关的调用放在一个链中。答案 1 :(得分:0)
首先,请在编写代码时使用propper tabbing / spacing。它让我们其他人的生活变得更加轻松。
就是这样。
让我们来解决你的问题。
1)使用somekind的javascript调试器。 Firefox的firebug,chrome的Chrome开发工具,甚至IE都有。 (最好使用萤火虫)。
2)弄清楚是否在fruitOrder变量中填充了任何内容。它可能不会。
3)你为什么要做正则表达式替换。我不知道你在那里参加什么。看来你拿着所有逗号并用空字符串替换它们。然后,你试图拆分一个空字符串。我会a)摆脱替换,b)将你的字符串拆分为逗号。
4)ajax调用你正在使用旧模式(至少我知道它)。您可能需要考虑使用deffered模式。这似乎是新的热点。
像这样的东西
var request = $.ajax({
url : urlHere,
data : {data: data},
type : 'post'
});
request.done(function(response){
// do something with the response
});
request.fail(function(response){
// something horrible happened. You got a server error response.
});
5)我不认为你正在使用document.write。您可能希望使用其他类似警报的内容来查看是否发生了某些事情。您可以使用警报或console.log()。不要保留console.log代码。如果没有足够的检查或调整,它会在IE上中断。
我希望有帮助