запрос синтаксиса php - PullRequest
       6

запрос синтаксиса php

0 голосов
/ 21 декабря 2009

У меня есть 2 вопроса: прежде всего, в while ($row = mysql_fetch_object($result))

У меня есть объект: $row->atitle

Теперь через javascript я хочу напечатать на странице приращение ++ текущего объекта массива.

Я делаю это:

hidephp = document.write("<?php echo .$row->atitle.["+inc+"];"+" ?>");

вышеупомянутое не похоже на работу. помощь будет высоко ценится.

Ответы [ 4 ]

3 голосов
/ 21 декабря 2009

Вы так мало предложили поработать, что я действительно не знаю, с чего начать. Я предполагаю, что из вашего поста вы не используете какой-либо шаблонный процесс (вы действительно должны это изучить)

Ваша проблема на самом деле в том, что вы смешиваете языки, которые охватывают отношения клиент / сервер. Javascript может делать то, что сервер отправляет клиенту, в то время как PHP фактически решает, что отправлять в первую очередь. Если вы хотите, чтобы Javascript что-то делал с переменными в PHP, вы должны использовать PHP json_encode(), чтобы делать то, что вы хотите:

// PHP
$row = array()
while ($row = mysql_fetch_object($result)
{
    $data[] = $row;
}
$javascriptFriendlyData = json_encode($data);


// Javascript
data = <?= $javascriptFriendlyData ?>;
2 голосов
/ 21 декабря 2009

Вы не можете распечатать PHP таким образом. PHP запускается при запросе страницы, выводит HTML и JavaScript в браузер, затем браузер отображает HTML и JavaScript. К тому времени, когда JavaScript запущен, PHP уже готов.

0 голосов
/ 21 декабря 2009

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

Попробуй просто.

while ($row = mysql_fetch_object($result))
  echo $row->atitle;

эти две строки будут использовать весь набор записей, выбранный из запроса

Если вам нужно встроить динамически созданный javascript в html-страницу, предоставляемую через php Вы должны попробовать этот PHP-код:

while ($row = mysql_fetch_object($result))
  echo "\nhidephp = document.write(\"" .$row->atitle."\");";

Если вам нужно динамически обновить страницу, уже обслуживаемую браузером, вам понадобится Ajax (и я не дам вам комплексного решения без дополнительных подробностей).

0 голосов
/ 21 декабря 2009

На самом деле вы пытаетесь интерпретировать часть PHP со стороны клиента, что невозможно.
Для интерпретации на стороне сервера вы должны написать что-то похожее на

idephp = document.write("<?php echo $row->atitle; ?>");

В этом случае PHP выполнит код внутри тега <?php ?>.

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