在js中有一个变量,当它的值改变之后如何通知php去获取这个值呢?
我的代码里用js写了一个input控件,当它的value改变之后,要马上通知php去获取它的input的值,这个“通知”该如何实现呢?

解决方案 »

  1.   

    只有递交到php,可以通过ajax或者iframe来递交数据.<script>
    function doit(obj){
       hf.location.href="xxx.php?v=" + escape(obj.value) + "&" + escape(new Date());
    }
    </script>
    <form>
    <input type="text" onchange="doit(this)">
    </form>
    <iframe name="hf" style="display:none;"></iframe>
    xxx.php<?php
    v = $_GET["v"];
    //do anything
    ?>
    <script>
    window.onload=function(){
      //parent.xxx(); 回调函数
      location.replace("about:blank");
    }
    </script>
      

  2.   

    用ajax没当空间发生onchange时间时候就递交一个ajax请求到php页面,不会刷新页面的,就是这样做,很简单的
      

  3.   

    <script scr='jquery.js'></script>
    <script>
        function fun(){
            $.post('php页面.php',{'参数名'=参数,……},function(data){
                //对php返回的数据data进行处理
            });
        }
    </script>
    <input type='text' name='txt' id='txt' onchange='fun()'>
      

  4.   

    不是很明白,ajax还没开始看我把我自己的那部分代码贴出来:
    <script language="JavaScript">
    document.write("<div>药品名:");
    addText("name1","");
    document.write("医生:");
    addText("doctor1","");
    //document.write("</div>"); var data = "<?php echo $data;?>";
    var forshort = "<?php echo $forshort;?>";
    init(data,forshort);
    filldata();
    </script>
    数量:
    <input name="amount" id="count" readonly="true" /></div>“药品名”跟“医生”两个控件是在js里生成的,当用户选择了某种药品跟某个医生之后,根据药品名和医生这两个值从mysql中获取数据,并将结果填充到“数量”这个控件中,但js是不能直接访问mysql的,这个该怎样处理呢?也就是当用户在用js生成的控件里头选定好了数据后,如何通知php根据相关数据从mysql里取出数据并填充到“数量”控件中,说的好拗口,呵呵
      

  5.   

    可以使用phpRPC,在服务器端写个读取数据的方法,
    再在客户端用js调用此方法,获取数据;phpRPC支持各个语言之间的交互,
      

  6.   

    用iframe递交数据并不刷新页面的
      

  7.   

    呵呵,谢谢,但我说的不是在php与js之间获取数据的问题,而是js里面的变量改变了,如何通知php马上去获取这些数据,进而把处理结果再返还给js里的变量
      

  8.   

    重新发问一下,这是我的部分代码:
    <script language="JavaScript"> 
    document.write(" <div>药品名:"); 
    addText("name1",""); 
    document.write("医生:"); 
    addText("doctor1",""); 
    //document.write(" </div>"); //往选择框里添加数据 
    </script> 
    数量: 
    <input name="amount" id="count" readonly="true" /> </div> “药品名”跟“医生”两个控件是在js里生成的,当用户选择了某种药品跟某个医生之后,根据药品名和医生这两个值从mysql中获取数据,并将结果填充到“数量”这个控件中,但js是不能直接访问mysql的,这个该怎样处理呢?用户从选择框里选择数据数据后,如何通知php根据选择的数据从mysql里取出数据并填充到“数量”控件中呢?注意用户选择数据的操作是在js中处理的。
      

  9.   

    其实这个问题说白了就是前端的js脚本里的值发生变化之后,如何通知后台服务器的php,php处理后再把值返回给js,js怎样去通知php呢?控件都是在js里生成的
      

  10.   

    ajax json jquery 一次满足楼主N个愿望
      

  11.   

    <input type="text" onpropertychange="postdata()" id="data"><script>
      postdata = function(){
        //此处取值,通过ajax调用PHP,传递数据
      }
    </script>
      

  12.   

    谢谢大侠们,ajax是我下一步的学习内容。这个问题我已经有解决办法了,但个人感觉这方法不是很好,不过对现在的我来说能解决就行了,以后再找方法优化了。方法是这样的:
    js里的值发生变化之后,用location重定向到页面本身,待php处理完数据之后,再把结果返回给js,这中间涉及到重定向之前页面相关数值的保留问题,相关数据我也一并用location传给php了,待重定向后再由php对原来数据进行重置,问题暂时得以解决!这个方法是来源于1楼的提示,因此就把分给1楼的了