以下代码是否正确?
$.ajax( {
url: './ajax/ajax_addTerms.php',
type: 'POST',
data: {"fId" : $fId, "term" : $term, "alias" : $alias,
"userId" : <?php print $userId; ?>},
当我删除PHP标签时,它可以正常工作,但这样做却没有。
答案 0 :(得分:5)
包裹这样的值:
"userId" : "<?php print $userId; ?>"}
否则JS会尝试解析错误的PHP输出。
答案 1 :(得分:2)
$.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完成其余的工作。
答案 2 :(得分:1)
JavaScript是客户端,PHP是服务器端。 Ajax的工作原理如下,
JavaScript HTTP请求 - &gt; PHP - &gt;返回由Ajax处理程序捕获的请求。
您无法从服务器端启动Ajax。
答案 3 :(得分:1)
我会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