Jquery load()不加载php文件

时间:2015-07-20 12:42:24

标签: 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>

<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;通过网址发布时。

2 个答案:

答案 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."
});