基本上,我想将一个PHP get变量从一个链接传递给Javascript,这样我就可以打开一个新的小窗口,其中包含传递给URL的值中的相应内容..我试着在下面这样做,我不能......我非常感谢你的帮助。下面的代码生成图像超链接,每个超链接都有来自数据库的ID,因此当单击图像时,应该打开一个新窗口,但应该将ID传递给javascript window.open方法...我试着这样做使用AJAX根据get变量加载内容但我无法做到!!
<?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>"; } ?>
答案 0 :(得分:2)
不要忘记在Javascript open
函数中引用网址。另外,您是否考虑使用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
)。 另一个提示:如果您没有特别的理由使用for循环,则使用while循环将使您的代码更清晰,更短。
while ($row = $result->fetch_assoc()) {
printf($link,$row['ID'],$row['Picture']);
}
答案 1 :(得分: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>"; } ?>
在客户端解析网址时,网址profile.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>"; ?>