Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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
PHP和jQuery函数—;只工作一次?_Php_Jquery - Fatal编程技术网

PHP和jQuery函数—;只工作一次?

PHP和jQuery函数—;只工作一次?,php,jquery,Php,Jquery,我有以下功能。当我第一次单击时,它返回一个随机数,但所有后续的单击都返回相同的数。为什么它不刷新 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#btn-get-rand

我有以下功能。当我第一次单击时,它返回一个随机数,但所有后续的单击都返回相同的数。为什么它不刷新

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {

        $('#btn-get-random-image').click(function () {

            $('#my-img').attr('src', '<?php echo $pics[array_rand($pics, 1)]; ?>');

        });
}); 
</script>

$(文档).ready(函数(){
$(“#btn获取随机图像”)。单击(函数(){
$('my img').attr('src','');
});
}); 

这是因为您使用PHP生成随机数,并且不可能在调用JS函数时刷新它——此时它已嵌入HTML中。

这是因为您使用PHP生成随机数,而且它不可能在调用JS函数时被刷新——此时它已嵌入HTML中。

您的PHP正在创建JS代码,该代码在呈现页面时会发送到浏览器。每次调用JS函数都会按照呈现页面时的状态运行函数。

您的PHP正在创建JS代码,呈现页面时会将其发送到浏览器。每次调用JS函数都会按照呈现页面时的状态运行函数。

正如其他人所说,您使用的是PHP,它在服务器上执行一次并作为原始输出发送,因此图像不会更改。试试这个

编辑:修改代码,使其不那么糟糕。

var myPics=;
$(文档).ready(函数(){
$(“#btn获取随机图像”)。单击(函数(){
var指数;
做{
index=Math.floor(Math.random()*myPics.length);
}while(myPics的类型[索引]=“未定义”);
$(“#我的img”)
.attr('src',myPics[索引]);
});
}); 

这使用PHP的JSON编码器将数组转储到javascript,然后函数从该数组中随机选择一个图像进行显示。
do/while
循环可能不是必需的,我的测试显示,在数千次迭代中,分布非常均匀,但它仍然存在。

正如其他人所说,您使用的是PHP,它在服务器上执行一次并作为原始输出发送,因此图像不会改变。试试这个

编辑:修改代码,使其不那么糟糕。

var myPics=;
$(文档).ready(函数(){
$(“#btn获取随机图像”)。单击(函数(){
var指数;
做{
index=Math.floor(Math.random()*myPics.length);
}while(myPics的类型[索引]=“未定义”);
$(“#我的img”)
.attr('src',myPics[索引]);
});
}); 

这使用PHP的JSON编码器将数组转储到javascript,然后函数从该数组中随机选择一个图像进行显示。
do/while
循环可能不是必需的,我的测试显示在数千次迭代中有一个非常好的近乎均匀的分布,但它仍然存在。

可能是您也可以使用
like而不是
单击

  $(document).ready(function(){
    $('#btn-get-random-image').live("click", function () {
    // your works here
    }
 });

还可以查看您也可以使用
live
like而不是
单击

  $(document).ready(function(){
    $('#btn-get-random-image').live("click", function () {
    // your works here
    }
 });

还可以查看

啊,好的。所以我需要用JS来做这个。啊,好的。所以我需要用JS来做这件事。