php与js的交互

WBOY
WBOYOriginal
2016-06-23 13:28:471575Durchsuche

//通过窗体隐藏传值
$orderno= '<script>document.write("333");</script>';

if($orderno=="333")
{
echo 'ok'.$orderno;
}
else{
echo 'no2';
}

我想通过这个方法把js的值传给php变量,以上代码,echo $orderno时的值是333,但为何下面执行的if语句里判断总是执行else的内容,为什么会出现值不相等??急求!!谢谢各位


回复讨论(解决方案)

php 运行在前,js 运行在后
php 运行完了之后,js 才开始运行

所以在一个 http 会话期间:
js 可以向 php 发送数据,并接受 php 返回的数据
反过来就不行

但是echo可以打印出document.write("333"),这点怎么解释,谢谢谢

这个当然是只能执行else分支啦。。。如果需要把js的值传给php变量。。可以使用ajax,dwr方式?

但是echo可以打印出document.write("333"),这点怎么解释,谢谢谢




echo $orderno; 在服务器端解析输出一行字符串,本应看到的是这样  ' <script>document.write("333");</script>'
但是却看见 333,这是因为为 客户端  script立即输出 333,这个333 并不是 echo 直接输出的值

-----------------
这个问题,要理解一下php是服务器端运行,script -> document.write 是在客户端运行,有先后顺序
$orderno= '<script>document.write("333");</script>';
echo gettype($orderno) ;   //string
$orderno 目前的值是字符串     string==333? 肯定不成立, 所以总是执行else的内容


var_dump($orderno); 查看源码就能看到不是333

$orderno= '<script>document.write("333");</script>';

这个只打印肯定有问题吧


但是echo可以打印出document.write("333"),这点怎么解释,谢谢谢




echo $orderno; 在服务器端解析输出一行字符串,本应看到的是这样  ' <script>document.write("333");</script>'
但是却看见 333,这是因为为 客户端  script立即输出 333,这个333 并不是 echo 直接输出的值

-----------------
这个问题,要理解一下php是服务器端运行,script -> document.write 是在客户端运行,有先后顺序
$orderno= '<script>document.write("333");</script>';
echo gettype($orderno) ;   //string
$orderno 目前的值是字符串     string==333? 肯定不成立, 所以总是执行else的内容


明白了,非常感谢!!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 使网站进行跨域访问Nächster Artikel:php比较函数