Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onClick使用“中的随机文本行刷新div”;quotes.txt“;_Javascript_Php - Fatal编程技术网

Javascript onClick使用“中的随机文本行刷新div”;quotes.txt“;

Javascript onClick使用“中的随机文本行刷新div”;quotes.txt“;,javascript,php,Javascript,Php,我有一个报价生成器在。我希望用户能够点击报价并加载另一个随机报价,而不刷新整个页面。我该怎么做 <h3> <?php $randomThings = file('quotes.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); echo $randomThings[mt_rand(0,count($randomThings)-1)];?> </h3> 我尝试了科林·肖恩的以下建议: <d

我有一个报价生成器在。我希望用户能够点击报价并加载另一个随机报价,而不刷新整个页面。我该怎么做

<h3>

<?php $randomThings = file('quotes.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
echo $randomThings[mt_rand(0,count($randomThings)-1)];?>

</h3>

我尝试了科林·肖恩的以下建议:

<div id="new-projects"></div>
<script>
$( "#new-projects" ).load( "quotes.txt" );
</script>

$(“#新项目”).load(“quotes.txt”);
但它加载了全部307个引号,而不是一个随机引号


如何解决这个问题?

您需要使用代表异步JavaScript和XML的AJAX。您可以使用jQuery库来减少异步加载新内容所需的代码量。请查看jQuery文档:


一种更具响应性的方法是在用户打开页面时加载整个文件,只需将行放在一个数组中即可。然后,您可以使用JavaScript根据该数组更改div,您永远不必刷新页面,甚至不必使用AJAX与服务器联系。

您提到您有300多个引号,因此客户端页面上的内联JS引号数组可能效率不高。下面是一个使用jQuery和PHP的快速解决方案:

PHP-quotes.PHP

<?php 
    // This is your original PHP code, mostly
    $randomThings = file('quotes.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
    echo $randomThings[mt_rand(0,count($randomThings)-1)];
?>

HTML端

<H3 id="new-projects"></H3>
<script>
    $( "#new-projects" ).on("click", function(){
       $(this).load( "quotes.php" );
    });
</script>

$(“#新项目”)。在(“单击”,函数(){
$(this.load(“quotes.php”);
});

有多少个引号?你能用上面的代码制作一个专用的quotes.php吗?我有307个引号。是的,我可以使用php来响应和运行上面的代码。太棒了!工作得很好!非常感谢你!