0

这是我的脚本

<div id="result"></div>
<script src="jquery-1.10.2.min.js"></script>
<script>
$('#year li').click(function() {
    var text = $(this).text();
    //alert('text is ' + text);
    $.post("B.php",
    {
    text: text,

      } );  
    event.preventDefault() ;
  });
</script>

单击列表项时,它会执行一个 php 脚本。脚本B.php创建了一些 txt 文件。让我们称其中之一为ddd.txt。现在我想在点击后将文件ddd.txt的内容加载到带有 id结果的 div 上。有人可以帮我吗?

4

4 回答 4

1

在您php file添加以下代码

$file = 'ddd.txt';
$contents = file($file); 
$string = implode($contents); 
echo $string;

在您的post success添加中,您将获得echoed来自php文件的这个值。假设它被命名data

$('#result').text(data);

希望这可以帮助你交配.. :)

于 2013-11-15T10:14:51.700 回答
0

我会通过 $.ajax() 来完成这个完整的动作。

$('#year li').click(function(){
    var text = $(this).text();
    $.ajax({url: 'B.php', type: 'POST', data: {'value':text}, success: function(data){
        alert(data); // alert any return values;
    }
    });
});

在 B.php 中,您可以使用 $_POST['value'] 变量将内容发布到文件中,您还可以在干净的 php 代码中添加您喜欢的任何内容。

于 2013-11-15T10:14:45.000 回答
0
$.post("B.php",{ text: text}, function(data){
    $('#result').text(data);
}); 

或者如果 jQuery >= 1.5:

$.post("B.php",{ text: text}).done(function(data){
    $('#result').text(data);
}).fail(function(){
    console.log('something went wrong', arguments);
}); 
于 2013-11-15T10:11:14.117 回答
0

你有两个选择。在生成器请求中加载结果的“同步”方法。或者“异步”方法,在生成器运行后每 x 秒检查一次结果。

同步你可以做

$.post("B.php, { 'text': text }, function(return_data, txtStatus, jqXHR) {
    $('#result').html(return_data);
});

并让您的 php 生成文件,并在结束脚本之前输出要显示的数据。

异步地,有几个选项。最简单的方法是使用$().load,您可以在其中执行以下操作:

function check_results(text) {
    $('#results').load('somescript.php', { 'text' : text }, function(return_data) {
        if(return_data == "") {
            setTimeout(function(){ check_results(text); }, 1000);
        }
    });
}


$.post("B.php, { 'text': text }, function(return_data, txtStatus, jqXHR) {
    check_results(text);
});

本质上,一旦 POST 返回,您就开始检查文件。如果此脚本生成大量文件并需要一些时间,但您想获取例如第一个文件,您可以通过在 post 回调函数(即我想更真实的是异步)。

显然代码是一个示例,所以请稍加注意,您将需要对其进行修改。

于 2013-11-15T10:11:28.170 回答