Как отправить данные из переменной PHP в JavaScript с помощью Ajax? - PullRequest
1 голос
/ 22 декабря 2010

Правильно ли следующий код?

 $.ajax( {
             url: './ajax/ajax_addTerms.php',
             type: 'POST',
             data: {"fId" : $fId, "term" : $term, "alias" : $alias,
 "userId" : <?php  print $userId; ?>},

Когда я удаляю теги PHP, он работает, но так не работает.

Ответы [ 4 ]

5 голосов
/ 22 декабря 2010

Оберните значение следующим образом:

 "userId" : "<?php  print $userId; ?>"}

В противном случае JS попытается проанализировать вывод PHP, что неверно.

2 голосов
/ 22 декабря 2010
 $.ajax( {
             url: './ajax/ajax_addTerms.php',
             type: 'POST',
             data: {"fId" : <?php echo $fId ?>, "term" : "<?php echo $term ?>", "alias" : "<?php echo $alias ?>",
 "userId" : <?php echo $userId; ?>},
 // echo is faster than print
 // and I assume $fId and $userId are integers so quotes aren't required

Интерпретатор PHP будет анализировать переменные, а затем JS сделает все остальное.

1 голос
/ 22 декабря 2010

Я бы использовал json_encode дополнительно к <?php ?>, чтобы убедиться, что "в строке правильно экранирован:

data: {"fId" : <?php echo json_encode($fId); ?>, "term" : <?php echo json_encode($term) ?>, "alias" : <?php echo json_encode($alias); ?>, "userId" : <?php echo $userId; ?>},

Таким образом, вы также можете передать массив:

<?php $data = array('fId' => $fId, 'term' => $term, 'alias' => $alias, 'userId' => $userId); ?>
...
data: <?php echo json_encode($data); ?>, // Same result as above
1 голос
/ 22 декабря 2010

JavaScript на стороне клиента, PHP на стороне сервера. Аякс работает так,

HTTP-запрос JavaScript -> PHP -> запрос возврата, перехваченный обработчиком Ajax.

Вы не можете запустить Ajax со стороны сервера.

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