如何使用Javascript将文本回显到后端脚本?

时间:2011-06-09 15:54:03

标签: php javascript jquery ajax backend

我有一个PHP脚本,我想输出一些文本,我用AJAX调用它放在文本框中。该文本是使用JavaScript生成的,但如果我调用document.write(),则会刷新整个页面,文本会自行显示 - 而不是在文本框中显示。

这是后端脚本:

<?php
  // unrelated stuff
?>
<!DOCTYPE HTML>

<html>
  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="robots" content="NOINDEX, NOFOLLOW" />
    <!-- JQuery -->
    <script type="text/javascript" src="<?php echo $toolsDirectory; ?>/jquery-1.4.3.min.js"></script>

<?php if ($a = 2) { ?>
    <script src="someScript.js" type="text/javascript"></script>

    <script type="text/javascript">
      <!--
      var a = new A;
      document.write(a.go("<?php echo $testString; ?>"1));
      // -->
    </script>

<?php } ?>
  </head>
  <body>

  </body>
</html>

我用$("#output").load("script.php");调用它。

我也尝试了$(body).html()同样的结果。

所以总结一下--Javascript工作,它输出正确的东西。如果我只是PHP中的echo "hello",它会按预期将它加载到文本框中 - 这只是Javascript写作让我感到困惑。

3 个答案:

答案 0 :(得分:3)

文档可以处于两种状态 - 打开和关闭。

加载文档时,它已打开。一旦完成加载,它就会关闭。

如果您重新打开文档,它会清除其中的所有内容。

如果您尝试写入文档,并且文档处于关闭状态,则会自动打开它。

这就是你发生的事情。

忘记document.writeuse DOM methods to modify the document了。

答案 1 :(得分:2)

当你能够使用php时,我不明白为什么你会使用javascript来回复内容......

<?php if ($a = 2) { ?>
    <script src="someScript.js" type="text/javascript"></script>
<?php echo $testString; } ?>

编辑:当你将它传递给JS函数时,你将不得不使用常规方法来改变页面中的内容......即给出一个镜头:

<?php if ($a = 2) { ?>
<div id="aresult"></div>
 <script src="someScript.js" type="text/javascript"></script>
 <script>
 var a = new A;
 $('#aresult').html(a.go('<?php echo $testString; ?>'));
 </script>
<?php } ?>

这样你就可以正常执行javascript函数,并将结果放在页面的某个位置。它不能像在原始代码中那样被回应。

答案 2 :(得分:0)

查看我对这个问题的回答:

JavaScript: How do I create JSONP?

这个想法是 - 你从JavaScript(客户端)调用一个单独的PHP脚本(服务器端)。它生成一些文本,返回带有参数的回调JS函数的名称(可以是您生成的文本)。回调JS函数在客户端执行并处理该参数数据。