6

リンクからJavascriptへのPHP get変数を渡したいので、URLに渡された値から適切なコンテンツを含む新しい小さなウィンドウを開くことができます..以下でそれを試みましたが、できませんでした...よろしくお願いします。以下のコードは、それぞれがデータベースからの ID を持つ画像ハイパーリンクを生成するため、画像をクリックすると新しいウィンドウが開くはずですが、ID は javascript の window.open メソッドに渡される必要があります ... 私はそれをしようとしましたget変数に従ってコンテンツをロードするためにAJAXを使用しましたが、できませんでした!

<?php
require('../database/connect.php');
database_connect();
$query = "select * from Entertainers";
$result = $connection->query($query);
$row_count =$result->num_rows;

for($i = 1; $i <= $row_count; $i++)
  {
   $row = $result->fetch_assoc();


?>
<?php  echo "<a href='' onclick='window.open(profile.php?id=".$row['ID'].")'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?>
4

2 に答える 2

2

openJavaScript関数で URL を引用することを忘れないでください。また、printf()アウトプットへの利用は検討されましたか?

$link =
'<a href="" onclick="window.open(\'profile.php?id=%d\')">'
. '<img src="../%s" width="100" height="100" /></a>' . PHP_EOL;

for($i = 1; $i <= $row_count; $i++) {
    $row = $result->fetch_assoc();
    printf($link,$row['ID'],$row['Picture']);
}

%dは小数を%s表し、上記の文字列内の文字列を表します (したがって$link)。もう 1 つのヒント: for ループを使用する特別な理由がない場合は、代わりに while ループを使用すると、コードがより簡潔で短くなります。

while ($row = $result->fetch_assoc()) {
    printf($link,$row['ID'],$row['Picture']);
}
于 2012-12-22T05:20:00.220 に答える
0

スクリプトがページに HTML をレンダリングするとき、URLパラメーターwindow.openはとしてレンダリングされませんstring

コードが現在ページにレンダリングしているもの:

<a href='' onclick='window.open(profile.php?id={some_id})'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?>

クライアントで解析されるとき、URLprofile.php?id={some_id}は文字列ではありません。

これを試して:

<?php  echo "<a href='' onclick=\"window.open('profile.php?id=" . $row['ID'] . "');\"><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; ?>
于 2012-12-22T05:20:05.213 に答える