【问题标题】:JavaScript function is not working. How to fix it?JavaScript 函数不工作。如何解决?
【发布时间】:2008-12-08 12:21:35
【问题描述】:

我有以下 JavaScript 代码: Link

makewindows 函数在其中似乎不起作用。

它确实创建了一个窗口,但是 html 要么包含引号,要么我将其更改为

child1.document.write(json_encode($row2["ARTICLE_DESC"]));

创建一个空白的 html 页面。

我将此函数移动到我的主要 JavaScript 文件中以包含,因为我之前遇到了错误,但现在弹出窗口中没有显示 HTML。这是因为我没有在 thest3.php 中检索 article_Desc 吗?

这里使用的其他 2 个文件: linktest3.php

【问题讨论】:

    标签: php javascript ajax


    【解决方案1】:

    $row2["ARTICLE_DESC"] 是 PHP 变量。

    它确实是一个php变量,但是它没有被渲染为php,因为它没有被<?php ?>标签包围

    所以,正确的做法是:

    child1.document.write(<?php echo json_encode($row2["ARTICLE_DESC"]); ?>);
    

    这样,作为服务器端语言的 php 将在呈现页面之前呈现 $row2 中的值,因此当页面最终呈现时,该值将在 javascript write 函数中......应该是这样的。

    【讨论】:

    • 这给出了一个错误而不告诉错误是什么..缺少引号?
    • json_encode是一个php函数,所以需要在php标签内
    • 是让函数带参数更符合逻辑,还是使用上面的方法。各自的优点/缺点是什么?
    【解决方案2】:

    要打印 php 变量,您需要 php 标签:

    child1.document.write(<?php echo json_encode($row2["ARTICLE_DESC"]); ?>);
    

    【讨论】:

    • 你需要在这里引用:document.write('');
    【解决方案3】:

    $row2["ARTICLE_DESC"] 是 PHP 变量。

    【讨论】:

      【解决方案4】:

      我怀疑它在被 PHP 解释器解析后包含了 javascript。尝试在 makewindows 中添加一个参数,并在构建 HTML 时通过该参数传递您打算使用的值。

       ...
       <p><a href='#' onclick='makewindows('"
        . json_encode($row2["ARTICLE_DESC"])
        . "'); return false;'>...
      
      
      function makewindows(html){
         child1 = window.open ("about:blank");
         child1.document.write(html);
         child1.document.close();
      }
      

      【讨论】:

      • 你能举个例子吗?我尝试将 $sql2 传递给 makewindows,但它不喜欢它。
      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      相关资源
      最近更新 更多