Gooda。 请帮助修复一下我的PHP代码: 这是代码:
<?php
$urls = array("http://www.site1.com",
"http://www.site2.com",
"http://www.site2.com");
$url = $urls[array_rand($urls)];
?>
<?php echo $url ?>
我需要通过单击链接或按钮逐个回显每个数组项。 所以它会在点击按钮website2后打印website1。
我将此代码用于按钮:
$(document).ready(function() {
$("#button").click(function () {
$("#frame").attr("src", "<?php echo $url ?>");
});
});
答案 0 :(得分:2)
你混淆了PHP和JavaScript。在将页面传递到客户端之前,PHP在服务器上运行。下载页面后,JavaScript在客户端运行。因此,如果不向服务器发出新请求,JavaScript就无法调用PHP。
您必须将PHP变量存储在JavaScript中,或者通过Ajax加载它。
答案 1 :(得分:1)
您无法使用PHP
JavaScript
个变量
例如,您可以将PHP
中的数组存储在JavaScript
数组
$(document).ready(function() {
<?php
$urls = array("http://www.site1.com", "http://www.site2.com", "http://www.site2.com");
echo 'var sites = ["'.$urls[1].'","'.$urls[1].'","'.$urls[1].'"], i= 0;';
//you will probably have to use for here
?>
$("#button").click(function () {
if (i > i.length) { i=0 }
$("#frame").attr("src", sites[i]);
i++;
});
});
答案 2 :(得分:1)
$urls = array("http://www.site1.com",
"http://www.site2.com",
"http://www.site2.com");
$url = $urls[array_rand($urls)];
echo '<script>'.'var urls = [];';
foreach($url as $key){
echo 'urls.push('.$key.');';
}
echo '</script>';
然后按钮:
$(document).ready(function() {
$("#button").click(function () {
$("#frame").attr("src", urls.pop()");
});
});
答案 3 :(得分:0)
另一个解决方案是在服务器上使用php渲染可点击按钮,这样当页面被下载时,按钮已经存在于html代码中。
您可以使用以下内容:
foreach($urls as $url) {
echo '<a href="$url"><input type="button" name="$url" value="$url"></a>';
}
答案 4 :(得分:0)
假设您的第一个脚本位于ajax / geturl.php中 (请注意,使用脚本(随机),您可以获得两次相同的URL。)
然后在你的页面上它应该是沿线的东西 (当然你提供了JQuery)
$.get('ajax/geturl.php', function(data) {
$("#frame").attr("src", data);
});