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 ?>
我需要通过单击链接或按钮逐个回显每个数组项目。因此,它将打印网站1,然后单击按钮网站2。
我将以下代码用于按钮:
$(document).ready(function() {
$("#button").click(function () {
$("#frame").attr("src", "<?php echo $url ?>");
});
});
你混淆了PHP和JavaScript。PHP 在页面传递到客户端之前在服务器上运行。JavaScript 在页面下载后在客户端运行。因此,JavaScript 不可能在不向服务器发出新请求的情况下调用 PHP。
你必须将 PHP 变量存储在 JavaScript 中,或者由 Ajax 加载。
无法使用JavaScript
访问PHP
变量
例如,您可以将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++;
});
});
$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()");
});
});
另一种解决方案是在服务器上使用 php 渲染可点击的按钮,因此当页面下载时,按钮已经存在于 html 代码中。
你可以使用这样的东西:
foreach($urls as $url) {
echo '<a href="$url"><input type="button" name="$url" value="$url"></a>';
}
假设你的第一个脚本是ajax/geturl.php
(请注意,使用脚本(随机(您可以两次获得相同的URL。
那么在你的页面上,它应该是类似的
内容(当然,前提是你有JQuery(
$.get('ajax/geturl.php', function(data) {
$("#frame").attr("src", data);
});