Как я могу передать текст в бэкэнд-скрипт с Javascript? - PullRequest
2 голосов
/ 09 июня 2011

У меня есть 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 работает, он выводитправильные вещи.Если я просто echo "hello" в PHP, он загружает его в текстовое поле, как и ожидалось - меня просто смущает написание Javascript.

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Документ может находиться в двух состояниях - открытый и закрытый.

Во время загрузки документа он открыт.После завершения загрузки он закрывается.

Если вы снова открываете документ, он стирает все содержимое в нем.

Если вы попытаетесь записать документ, и он будет закрытсостояние, затем он автоматически открывает его.

Это то, что происходит с вами.

Забудьте о document.write и используйте методы DOM для изменения документа .

2 голосов
/ 09 июня 2011

Не уверен, что я понимаю, почему вы используете javascript для отображения контента, когда вы можете просто использовать php ...

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

edit: когда вы передаете его функции 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 и размещаете результат где-нибудь на странице. Это не может быть просто отражено в исходном коде.

0 голосов
/ 09 июня 2011

Ознакомьтесь с моим ответом на этот вопрос:

JavaScript: Как мне создать JSONP?

Идея в том, чтобы сделать вызов из JavaScript (на стороне клиента).) в отдельный скрипт PHP (на стороне сервера).Он генерирует некоторый текст и возвращает имя функции JS обратного вызова с параметром (который может быть вашим сгенерированным текстом).Функция обратного вызова JS выполняется на стороне клиента и обрабатывает данные этого параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...