使用php打开新窗口并在其中显示数据

使用php打开新窗口并在其中显示数据,php,javascript,Php,Javascript,我的php有问题。我在这里要做的是,我有一个指向外部.js的.html文件,这个js文件打开了一个.php文件 php从mysql表和xml中提取数据,并将数据显示在网页上(以.html格式显示为表行)。现在,当用户单击任意一行时,我希望php能够打开一个新窗口,并在该窗口上显示来自同一mysql和xml的更多数据(新窗口) ($k=0;$klength-1;$k++)的 { 对于($l=0;$litem($k)->nodeValue==$JobNoArr[$l]) { $m++; 如果($m%

我的php有问题。我在这里要做的是,我有一个指向外部.js的.html文件,这个js文件打开了一个.php文件 php从mysql表和xml中提取数据,并将数据显示在网页上(以.html格式显示为表行)。现在,当用户单击任意一行时,我希望php能够打开一个新窗口,并在该窗口上显示来自同一mysql和xml的更多数据(新窗口)

($k=0;$klength-1;$k++)的

{
对于($l=0;$litem($k)->nodeValue==$JobNoArr[$l])
{
$m++;
如果($m%2==0)
{$a=“#A5ADEA”}
其他的
{$a=“#d1d3”}
//形式为“html1+=”;
回声“;
回声“$m.”;
回显“($y->item($k)->nodeValue)。”;
回声“($titlear[$l])”;
echo“点击获取摘要”;
回声“$uu.”;
回声“;
}
}
}

如果我使用
echo“您可能可以使用YUI创建一个隐藏的浮动对话框,其中包含“摘要”的数据" . 默认情况下隐藏页面上所有项目的所有摘要。js show函数只需在用户单击项目时将YUI元素设置为可见即可。您甚至不需要打开新的浏览器窗口。

您可以使用YUI创建一个隐藏的浮动对话框,其中包含“摘要”的数据。默认情况下隐藏页面上所有项目的所有摘要。js show函数只需在用户单击项目时将YUI元素设置为可见即可。你甚至不需要打开一个新的浏览器窗口。

如果你不想真正“用PHP来做这件事”,你需要用JavaScript来做。PHP是一种服务器端技术,您需要在客户端(浏览器)进行操作。有几种不同的方法可以做到这一点;下面我概述的方法使用很少的JavaScript

首先,您需要按如下方式重写您的
onClick

echo "<td onClick=\"return show('".$u->item($k)->nodeValue."');\"><i><font size=2>Click for Abstract</font></i></td>";
您的PHP页面应该抓取
$\u GET['rowid']
参数,查找适当的数据,并按照您希望的方式对其进行格式化/打印


实际上,您可以将所有数据嵌入JSON,并使用DHTML和CSS层来实现类似的效果,而无需额外的窗口。如果你愿意,我可以发布一个这样的例子。

你不想“用PHP做这个”,你要用JavaScript来做。PHP是一种服务器端技术,您需要在客户端(浏览器)进行操作。有几种不同的方法可以做到这一点;下面我概述的方法使用很少的JavaScript

首先,您需要按如下方式重写您的
onClick

echo "<td onClick=\"return show('".$u->item($k)->nodeValue."');\"><i><font size=2>Click for Abstract</font></i></td>";
您的PHP页面应该抓取
$\u GET['rowid']
参数,查找适当的数据,并按照您希望的方式对其进行格式化/打印


实际上,您可以将所有数据嵌入JSON,并使用DHTML和CSS层来实现类似的效果,而无需额外的窗口。如果您愿意,我可以发布一个这样的示例。

如上所述,您希望使用javascript模式窗口来显示内容。您可以(无论如何,大多数模态窗口)在模态窗口中使用PHP代码,允许您使用相同的MySQL和XML,但作为服务器端技术的PHP无法在不刷新页面或完全打开新页面的情况下打开新窗口

如果您使用jQuery(我推荐),我建议您将其作为一个优秀的lightbox样式的模态窗口,您可以轻松地使用甚至自定义自己


希望这能有所帮助。

如前所述,您希望使用javascript模式窗口来显示内容。您可以(无论如何,大多数模态窗口)在模态窗口中使用PHP代码,允许您使用相同的MySQL和XML,但作为服务器端技术的PHP无法在不刷新页面或完全打开新页面的情况下打开新窗口

如果您使用jQuery(我推荐),我建议您将其作为一个优秀的lightbox样式的模态窗口,您可以轻松地使用甚至自定义自己


希望这能有所帮助。

非常感谢您对Dustin的详细回答。我在试着使用代码。但它仍然在参数列表之后给出了一个错误:missing)它之前也给出了相同的错误。该错误不是由上述源代码中的任何内容引起的。该错误通常表示在列出另一个参数之前,遗漏了参数后面的逗号(,)。例如,如果在转到下一行并列出display option参数之前,我错过了上面“somenamefortheindow”后面的逗号。查看代码的其余部分,看看是否找不到缺少逗号的地方。对不起,实际上,如果我没有找到我提到的逗号,则不会显示该错误,因为该代码是javascript(不是PHP)。不过,这让我意识到,您可能正试图将PHP中的javascript直接转换为PHP。我已经更新了我的答案,向您展示了如何用PHP将其打印到页面上,以防万一您正在这样做。但是如果我尝试在没有任何参数的情况下运行代码。。我是说秀。。然后它运行并打开一个新窗口。但是如果我把参数放进去,它会给我同样的错误,我已经能够通过:show(“$u->item($k)->nodeValue.”)解决这个错误\“>非常感谢Dustin提供了如此详细的答案。我试图使用代码。但它在参数列表之后仍然给出了一个错误:missing)它之前也给出了相同的错误。该错误不是由上述源代码中的任何内容引起的。该错误通常表示您遗漏了逗号(,)在一个参数之后,再列出另一个参数。例如,如果在转到下一行并列出显示选项参数之前,我没有在上面的“somenameforthewindow”后面加上逗号。请查看代码的其余部分,看看是否
echo "
 <script type=\"text/javascript\">
 <![CDATA[
   function show(rowid, arrno) {
     window.open(
       'showAbstract.php?rowid='+rowid+'&rowid2='+arrno,  // the url to the php script
       'somenameforthewindow',                            // some name for the window
       'status=0,width=100,height=100'                    // display options for the window
     );
     return false;
   }
 ]]>
 </script>";