Php回显数组项目逐个点击(唯一)


Php echo array items one by one by click (only unique)

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);
});