单击Php echo数组项目(仅限唯一)

时间:2013-06-13 14:59:52

标签: php javascript jquery arrays sorting

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

5 个答案:

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