Javascript Jquery load()不';无法加载php文件
头部Javascript Jquery load()不';无法加载php文件,javascript,php,jquery,html,Javascript,Php,Jquery,Html,头部 <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>
<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>
$(文档).ready(函数(){
$(“#文章”)。可排序({
不透明度:0.6,
轴:‘y’,
更新:函数(){
变量顺序=$('#tousarticles')。可排序('serialize');
警报(顺序);//它警报“listitem[]=59和listitem[]=4和listitem[]=58和listitem[]=71”
$(“#info”).load(“test.php?”+顺序,函数(){
警报(“加载已执行”);//它警报“加载已执行”
});
}
});
});
还有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“listitems”的位置。但是test.php根本不加载
这就是过程
我将第一段改为第二段,第一个警报带有正确的字符串(listitem[]=59&listitem[]=4&listitem[]=58&listitem[]=71)。我单击“确定”
因此,正如预期的那样,第二个警报带有“加载已执行”。我单击“确定”
但是,test.php脚本没有加载
即使文件不存在(例如testtt.php),也会出现警报“Load was performed.”
通过ftp访问我的服务器时,没有文件/upload/file.txt。
但是test.php运行良好,通过url启动时会创建一个“upload/file.txt”。以下内容将始终触发,因为它是完整的回调
$("#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."
});
检查浏览器控制台是否有错误。如果这是您的全部PHP代码,那么问题是fopen()实际上没有输出任何内容,因此您正在加载一个空文件。如果下面有一些代码,您应该检查浏览器的控制台,看看url是否也没有被缓存。它显示:“Load was performed.Status=error,xhr.statusText=forbidded”您可以手动调用与ajax脚本具有相同url的.php文件吗?有可能是跨域的吗?这可以通过post()解决我使用的方法与上面蒙克宙斯建议的方法相同。谢谢你的合作。@FrédéricFaux有些事情你没有看到。通过查看以下答案,尝试调试AJAX
.load()
:使用Firefox的Firebug扩展,我可以看到此文件的“403禁止”消息。但是我可以通过url栏直接访问它。@FrédéricFaux您可以在没有序列化数据的情况下尝试test.php吗?好的,它可以通过ajax load()在没有序列化数据的情况下工作。此外,当我通过url加载带有数据的test.php时,它返回403。我尝试用post()方法发送链,它也可以与我可以在php文件中使用的序列化数据一起工作。jquery load()方法似乎使用GET方法,而服务器只需要POST方法。@FrédéricFaux很高兴听到它起作用了!请查看我的更新与更多信息。
<div id=info></div>
<div id="info"></div> <!-- You forgot double quotes -->
<?php
echo 'Hello, this is dog';
?>
$("#info").load("test.php", $('#tousarticles').sortable('serialize'), function() {
alert( "Load was performed." ); // It alerts "Load was performed."
});