根据主要接受的标题,如何解释以下内容:
...
$temp1=$_POST['expert_id']; ?>
<script type="text/javascript">
var jstemp1 =<?php echo json_encode($temp1); ?>;
</script>
<?php
$temp1=$_POST['answers_id']; ?>
<script type="text/javascript">
var jstemp2 =<?php echo json_encode($temp1); ?>;
</script>
假设$ _POST [' expert_id '] = 1, $ _POST [' answers_id '] = 2。我的想法是,当Javascript代码开始执行时,$temp1将等于2,因为PHP代码首先执行。因此,jstemp1将等于2,jstemp2将等于2。然而,令我非常惊讶的是,jstemp1=1和jstemp2=2。你能给我解释一下吗?
去掉所有的JavaScript,你应该看到服务器端发生了什么;你真的在做:
$temp1=$_POST['expert_id'];
echo json_encode($temp1);
$temp1=$_POST['answers_id'];
echo json_encode($temp1);
如果$_POST['expert_id'] = 1
和$_POST['answers_id'] = 2
…
$temp1=1;
echo json_encode($temp1);
// outputs 1
$temp1=2;
echo json_encode($temp1);
// outputs 2
客户端是:
<script type="text/javascript">
var jstemp1 =1;
</script>
<script type="text/javascript">
var jstemp2 =2;
</script>
所有服务器端代码(PHP)在客户端代码(JavaScript)之前执行
您的PHP
代码与HTML
/Javascript
内联,它将首先在服务器上执行,真的,
但是评估是按照您编写的顺序完成的。
将值赋给变量,然后将其打印出来。
然后为同一变量赋不同的值,覆盖它,然后打印出来。
这很正常
PHP在将页面发送到浏览器之前在服务器端执行代码。
浏览器收到:
<script type="text/javascript">
var jstemp1 =1;
</script>
<script type="text/javascript">
var jstemp2 =2;
</script>
当页面加载时,执行javascript代码