0

如何获得以下信息以打开带有消息变量的窗口?我假设有办法让它工作,但到目前为止我还没有运气。

echo "<script>myWindow=window.open('','','width=200,height=100');
    myWindow.document.write("$message");</script>";

给定 $message 变量的内容...

$message =  "<html><body><table>
        <tr><td><strong>
            Visitor's Name:</strong> ".$_POST['tester_name']."</td></tr>".
        "<tr><td><strong>
        Visitor's E-mail:</strong> ".$_POST['tester_email']."</td></tr>".
        "<br /><tr><td><strong>Answers:</strong></td></tr>";

        $x = 1;
        $y = 0;
        foreach($fields as $key => $field) {
            if (preg_match("/q./", $field)) {
                if ($field == "q3" or $field == "q9") {
                    $cor = (implode(" or ", $corArray[$y]));
                } else {
                    $cor = $corArray[$y];
                }

                $message = $message.
                "<tr><td><em>$x.</em> (
                <b>Response:</b>".$_POST[$field].
                ")</td><td><b>Correct Answer:</b>".$cor."
                </td></tr>";
                ++$x; ++$y;
            }       
             }              

$message = $message."<tr><td><br /><strong>
    Score:</strong> ".$numCorrect."/10 or ".$perc."
        %</td></tr></table></body></html>";
4

5 回答 5

0

正如 ra_htial 所指出的,您需要转义引号。此外,如果任何已发布的参数具有换行符,您的代码将不起作用。这将最终终止 Javascript 语句并引发错误。确保正确删除换行符的值。还要在浏览器中打开 javascript 错误报告。此外,您还可以从脚本中查看生成的源代码,这将帮助您找到以换行符终止的确切语句。

于 2013-09-28T07:29:00.630 回答
0

以下是转换代码、将其保存为 php 页面并在浏览器中打开查看源代码以将其拼凑在一起所需的一切:

<?
$myPhpCalculations = "php within html example:" . 1234;
$message =  "<p>my string with some quotation marks escaped: \" \" \": " . $myPhpCalculations . "</p>";

echo "<script>myWindow=window.open('','','width=200,height=100');
    myWindow.document.write('" . stripslashes($message) . "');</script>";

?>

本质上,如果您使用引号来保存 $message 中的字符串,那么任何引号都必须在该字符串中进行转义。然后,您使用 stripslashes() 函数附加它以避免破坏回显到页面的 html 代码。

于 2013-09-28T08:56:40.720 回答
0

您可能想要base64_encode消息并通过 $_GET 参数传递它。在接收消息的页面上,只需使用 base64_decode 来获取原始消息。

于 2013-09-28T08:25:06.773 回答
0

尝试 :

echo "<script>myWindow=window.open('','','width=200,height=100');myWindow.document.write(\"".$message."\");</script>";

你忘了逃离"内心echo

于 2013-09-28T07:00:35.633 回答
0

你可以做这个工作:

  1. 创建一个php包含创建表的函数的文件。
  2. 创建一个具有标准网页宽度和空白正文的页面。

稍后,当您打开弹出窗口时,将变量设置为第二页。第一页的第二页调用函数,带有您收到的参数。

我建议您使用 aframework来制作您的应用程序。

于 2013-09-28T08:20:32.063 回答