-1

グッダ。私の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 つずつエコーする必要があります。そのため、website1 を印刷し、次にボタン website2 をクリックした後に印刷します。

ボタンに次のコードを使用します。

$(document).ready(function() {
   $("#button").click(function () { 
   $("#frame").attr("src", "<?php echo $url ?>");
  });
});
4

5 に答える 5

2

PHP と JavaScript を混同しています。ページがクライアントに配信される前に、PHP がサーバー上で実行されます。ページがダウンロードされた後、クライアント側で JavaScript が実行されます。したがって、JavaScript がサーバーに新しい要求を行わずに PHP を呼び出すことはできません。

PHP 変数を JavaScript にイーサ保存するか、Ajaxでロードする必要があります。

于 2013-06-13T15:02:34.903 に答える
0

もう 1 つの解決策は、サーバーで php を使用してクリック可能なボタンをレンダリングすることです。これにより、ページがダウンロードされたときに、ボタンが html コードに既に存在します。

次のようなものを使用できます。

foreach($urls as $url) {
echo '<a href="$url"><input type="button" name="$url" value="$url"></a>';
}
于 2013-06-13T15:10:48.170 に答える
0

最初のスクリプトが ajax/geturl.php にあるとしましょう
(スクリプトをそのまま (ランダムに) 使用すると、同じ URL を 2 回取得する可能性があることに注意してください)。

あなたのページでは、それはラインに沿ったものでなければなりません
(もちろんJQueryを持っている場合)

$.get('ajax/geturl.php', function(data) {
   $("#frame").attr("src", data);
});
于 2013-06-13T15:12:09.817 に答える