如何传递 PHP GET URL 变量以使用 Javascript 打开一个窗口?

Posted

技术标签:

【中文标题】如何传递 PHP GET URL 变量以使用 Javascript 打开一个窗口?【英文标题】:How can I pass PHP GET URL variables to open a window with Javascript? 【发布时间】:2012-12-09 14:55:54 【问题描述】:

我想将 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>";  ?>

【问题讨论】:

为什么不while($row = $result-&gt;fetch_assoc()) ?? 最后一个匹配的大括号在脚本的末尾。我希望用传入的变量打开窗口。 【参考方案1】:

不要忘记在 Javascript open 函数中引用 url。另外,您是否考虑过使用printf() 进行输出?

$link =
'<a href="" onclick="window.open(\'profile.php?id=%d\')">'
. '<img src="../%s"   /></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']);

【讨论】:

你是个天才......谢谢你!!!!你真的救了我..我怎么能接受你的回答...我希望我们保持联系..我来自加利福尼亚州洛杉矶 如何使打开的窗口具有 200 和 100?? 如何使该窗口的宽度为 100,高度为 200 .. 分开打开的窗口??我想从你已经给我的代码中获得这种效果.. @GuyRwayitare 没问题。我们花在调试上的大部分时间都是由烦人的拼写错误或类似这样的小语法问题引起的。您可以通过答案左侧的向下投票箭头下的复选标记来接受答案。 Check here 查看window.open 函数的可用函数参数,包括窗口大小。 您的回答已被我的朋友接受。如果您也能帮助我解决这个问题,我将不胜感激。我一直在尝试将 PHP GET 变量从链接传递到 AJAX所以内容可以在同一页面上加载,但我无法获得帮助......这是pastebin链接..我怎样才能实现这一点并将get变量传递给AJAX..链接pastebin.com/VKg72rB3 【参考方案2】:

当您的脚本在页面上呈现 html 时,window.openURL 参数不会呈现为 string

您的代码当前在页面上呈现的内容:

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

在客户端解析时,URL 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>"; ?>

【讨论】:

@GuyRwayitare 这很奇怪。我所做的只是在 JS 调用中为你的 URL 添加引号。你有什么错误吗?上面inhan的解决方案更干净,但本质上是一样的。 @GuyRwayitare 我希望您在原始代码的上下文中使用了该代码行,而不是将该行转储到新页面上,因为我在那里留下了一个结束大括号,这会导致问题。我会修改答案。

以上是关于如何传递 PHP GET URL 变量以使用 Javascript 打开一个窗口?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 要求并包含 GET

如何使用 PHP 在 URL 中传递 URL(作为 GET 参数)?

如何给url传递动态参数值?

预定义变量

php高级

如何使用 include 函数通过 URL 将变量/值传递给另一个 PHP 文件(通过 HTTP)? (PHP)