php:echo不是echo'ing

时间:2011-11-08 16:24:28

标签: php javascript jquery echo

我有以下代码,以及javascript回声之前的东西以及javascript包含之后的内容,但是javascript不会回应:/

$currentPage = $_POST["current_page"];
$nextPage = 1 + $currentPage;
$count = $_POST["cum_count"];
$total = $_POST["cum_total"];
$progress = $_POST["cum_progress"];
echo $currentPage . $nextPage;

# number of questions less 1
$numQs[2]=6;
$numQs[3]=3;
$numQs[4]=5;
$numQs[5]=34;
$numQs[6]=17;
$numQs[7]=43;

$falses = array('false');
    for ($i=0; $i < $numQs[$nextPage]; $i++) {
        array_push($falses,', false');
    }

#  the js is how the survey keeps track of where it is
    echo "<script type='text/javascript'>\n
            var c_name = 'whbssurvey';\n
            var c_value = '$nextPage';\n
            document.cookie=c_name + '=' + c_value;\n
            // set survey info\n
            var count = $count;\n
            var total = $total;\n
            var progress = $progress;\n
            var qArray = [$falses];\n
        </script>";

    include("$nextPage.php");

P.S。如果有人认为cum_count是脏的东西,那么它就是累积的。

3 个答案:

答案 0 :(得分:3)

你确定它没有回音吗?在你做包含之前,它已经完成了。如果包含的是一个完整的html页面,则JS将在开始<html>标记之前回显(这会使页面无效)。

同样,对于倾销这样的多行文本,您应该退出PHP模式,以便它只是自动回显的纯文本,或者使用HEREDOC。由于您要将几个PHP变量插入到该输出中,因此可能更喜欢HEREDOC。

答案 1 :(得分:1)

尝试使用<script></script>标记进行回显。它可能正在打印但您的浏览器由于某种原因没有呈现它。如果你得到了页面上所有的代码,那就有用了。

答案 2 :(得分:0)

尝试:

echo "<script type='text/javascript'>\n" .
        "var c_name = 'whbssurvey';\n" . 
        "var c_value = '$nextPage';\n" .
        "document.cookie=c_name + '=' + c_value;\n" .
        "// set survey info\n" .
        "var count = $count;\n" .
        "var total = $total;\n" .
        "var progress = $progress;\n" .
        "var qArray = [$falses];\n" .
    "</script>";