头
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"> </script>
HTML
<div id=info></div>
<div id="tousarticles">
<div class="titre" id="listitem_4">
<p>Blahblahblah</p>
</div>
<div class="titre" id="listitem_59">
<p>Blahblahblah</p>
</div>
<div class="titre" id="listitem_58">
<p>Blahblahblah</p>
</div>
<div class="titre" id="listitem_71">
<p>Blahblahblah</p>
</div>
</div>
Javascript
<script type="text/javascript">
$(document).ready(function() {
$("#tousarticles").sortable({
opacity: 0.6,
axis: 'y',
update : function () {
var order = $('#tousarticles').sortable('serialize');
alert(order); // It alerts "listitem[]=59&listitem[]=4&listitem[]=58&listitem[]=71"
$("#info").load("test.php?"+order, function() {
alert( "Load was performed." ); // It alerts "Load was performed."
});
}
});
});
</script>
和php
<?php
$fp = fopen("./upload/file.txt","w+");
// Normaly, the DB entry php script but, here, I put some stuff visible on a writable repertory on my server to know if it runs.
?>
可排序界面效果很好:我可以改变DIV&#34; listitems&#34;的位置。没有问题。但是test.php根本没有加载。
这是流程
我用第二段更改第一段,第一个警告带有正确的字符串(listitem [] = 59&amp; listitem [] = 4&amp; listitem [] = 58&amp; listitem [] = 71)。我点击&# 34; OK&#34;
因此,正如预期的那样,第二个警报附带&#34;已执行加载。&#34;我点击&#34;确定&#34;。
但是,test.php脚本确实没有加载。
警报&#34;已执行加载。&#34;即使文件确实存在(例如testtt.php)。
通过ftp转到我的服务器,没有文件/upload/file.txt。 但test.php运行良好并创建了一个&#34; upload / file.txt&#34;通过网址发布时。
答案 0 :(得分:1)
以下将始终触发,因为它是完整的回调。
$("#info").load("test.php?"+order, function() {
alert( "Load was performed." ); // It alerts "Load was performed."
});
试试这个,希望这会告诉你什么是错的。
$("#info").load("test.php?"+order, function(response, status, xhr) {
alert( "Load was performed. Status="+status+", xhr.statusText="+xhr.statusText ); // It alerts "Load was performed."
});
答案 1 :(得分:0)
<div id=info></div>
应该是
<div id="info"></div> <!-- You forgot double quotes -->
你的PHP实际应该回应一些东西,而不是创建一个文件:
<?php
echo 'Hello, this is dog';
?>
更多信息:
jQuery中的.load()
方法默认使用GET方法,并且总共接受3个参数。
我建议您尝试以下方法:
$("#info").load("test.php", $('#tousarticles').sortable('serialize'), function() {
alert( "Load was performed." ); // It alerts "Load was performed."
});