请问一下,PHP如何获取JS中的值呢?JS又是如何获取PHP中的值呢?如果可以的话希望大家能给出例子!不胜感激!我知道的一种PHP获取js数据的方法是这样的(比如):页面上一个onchange事件处理数据,然后把数据放在页面上一个隐藏的控件中,在form提交页面信息的时候PHP端就可以通过$_POST[]来获取该数据了。虽然是种PHP获取js数据的方法,但总感觉别扭!另外js如何获取php的数据呢?望高手指教!
调试欢乐多
可以json,也可以xml
<?php
$a = 'hello';
?>
<div><?php echo $a ?></div>
<?php
$a = 'hello';
?>
<script>
alert("<?php echo $a; ?>");
</script>
$this->smarty->assign("a",$a);
前如页面用一个隐藏控件存a的值<input type="hidden" id="id1" name="id1" value="{{$a}}"></input>
js中:
var Value=$('#id1').val();
php(服务端)->http返回->js(客户端)
这个不难理解吧,php echo出东西,http返回给客户端,js就可以读取到页面的输出值了。
反之,php要读取js的值,需要一次http请求过程。
<html>
<head><title>phptest</title>
<script type="text/javascript" src="phpTest2.php">
function test()
{
//var aa = $test2;
//alert(aa);
alert('ddd');
}
</script></head>
<body onload="test();"></body>
</html>提示 加载源代码失败: http://127.0.0.1/phpTest2.php
什么原因呢?
header("Content-type: application/x-javascript");echo '
alert("123");
';
?>
那是不是说三楼给出的例子就是一个 php通过http返回给客户端?我自己写的那个例子就是通过一次http请求读取js中的值?另外,如果php通过ajax来获取js中的信息,除了通过 url=“phpTest.php”+var;来获取var之外还有什么方法 呢?
我把你的代码稍作了修改:
<?php
header("Content-type: application/x-javascript");$aa = 'tt';
?>
也会报 加载源代码失败: http://127.0.0.1/phpTest2.php然后我再修改为
<?php
header("Content-type: application/x-javascript");$aa = 'tt';
echo $aa;
?>
就可以加载这个php程序了!
这个是为什么呢?再如果,使用了
<?php
header("Content-type: application/x-javascript");$aa = 'tt';
echo $aa;
?>
php程序加载了,但是js中也没有取到变量aa的值啊?
我参照三楼的做法把php程序和js程序写到一起时可以取到变量值,而通过你这种方式加载的php却不行,这时为什么呢?
呵呵,问题比较多,还望不吝赐教!
就像你这个例子
实际上是利用php输出js代码,然后由<script>标签引入,你是必须要echo的,否则<script>就load不到任何有效的js代码.phpTest2.php
<?php
echo "var a = '".time()."';\n";
echo "alert('服务器的时间是:'+a)";
?>