请问一下,PHP如何获取JS中的值呢?JS又是如何获取PHP中的值呢?如果可以的话希望大家能给出例子!不胜感激!我知道的一种PHP获取js数据的方法是这样的(比如):页面上一个onchange事件处理数据,然后把数据放在页面上一个隐藏的控件中,在form提交页面信息的时候PHP端就可以通过$_POST[]来获取该数据了。虽然是种PHP获取js数据的方法,但总感觉别扭!另外js如何获取php的数据呢?望高手指教!

解决方案 »

  1.   

    你可能需要ajax,网上例子太多js获取php的数据,,可以是<script type="text/javascript" src="http://domain/js.php"></script>
    可以json,也可以xml
      

  2.   

    js 用 php 的那第一种是模板,第二种,如下
    <?php
    $a = 'hello';
    ?>   
    <div><?php echo $a ?></div>
      

  3.   

    上面是html中用,js中用法
    <?php
    $a = 'hello';
    ?>   
    <script>
    alert("<?php echo $a; ?>");
    </script>
      

  4.   

    可以把PHP中的值保存在smarty中如:
    $this->smarty->assign("a",$a);
    前如页面用一个隐藏控件存a的值<input type="hidden" id="id1" name="id1" value="{{$a}}"></input>
    js中:
    var Value=$('#id1').val();
      

  5.   

    js(客户端)->http请求->php(服务端)
    php(服务端)->http返回->js(客户端)
    这个不难理解吧,php echo出东西,http返回给客户端,js就可以读取到页面的输出值了。
    反之,php要读取js的值,需要一次http请求过程。
      

  6.   

    我这样写的:
    <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
    什么原因呢?
      

  7.   

    phpTest2.php里的文件,存在你可以写个简单的测试比如<?php
    header("Content-type: application/x-javascript");echo '
    alert("123");
    ';
    ?>
      

  8.   


    那是不是说三楼给出的例子就是一个 php通过http返回给客户端?我自己写的那个例子就是通过一次http请求读取js中的值?另外,如果php通过ajax来获取js中的信息,除了通过 url=“phpTest.php”+var;来获取var之外还有什么方法 呢?
      

  9.   


    我把你的代码稍作了修改:
    <?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却不行,这时为什么呢?
    呵呵,问题比较多,还望不吝赐教!
      

  10.   

    js是运行在客户端浏览器,浏览器只负责发送http请求给php,得到什么完全由php决定输出什么,这样会不会更明白些 
    就像你这个例子
    实际上是利用php输出js代码,然后由<script>标签引入,你是必须要echo的,否则<script>就load不到任何有效的js代码.phpTest2.php
    <?php
    echo "var a = '".time()."';\n";
    echo "alert('服务器的时间是:'+a)";
    ?>