PHP首先完成执行的,那么JavaScript执行
问题描述:
根据主体验收的称号,你怎么解释如下:PHP首先完成执行的,那么JavaScript执行
...
$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。我的想法是,当PHP代码开始执行时,$ 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在服务器端执行代码。
浏览器接收:
<script type="text/javascript">
var jstemp1 =1;
</script>
<script type="text/javascript">
var jstemp2 =2;
</script>
,并加载页面时执行JavaScript代码。
答
您的PHP
代码与HTML
/Javascript
内嵌,它将首先在服务器上执行,为true,
,但评估按照您编写它的顺序完成。
给变量赋值,然后打印出来。
之后,您为同一个变量分配一个不同的值,覆盖它,然后将其打印出来。
这是完全正常的。
由于您已将$ _POST ['expert_id']'(大概1)到'$ _POST ['answers_id']'(大概是2)的PHP变量'$ temp1'的值重新分配。 – CD001
你没有看到我的观点。当Javascript开始运行时,$ temp1 = 2,不是吗? –
不 - 想象你正在用PHP语言编写** all **你的JavaScript语句; 'echo '你仍然将代码推送到输出缓冲区(屏幕),但JS不会被执行,因为它的输出(与加载正常HTML页面) – CD001