<script>
   
 var url = '/Research';
            var objParm = new Object();
            objParm.kwd = $('#hdkwd').val();
            objParm.sub = $('#hdsub2').val();
            objParm.beg = $('#hdbeg').val();
            objParm.past = $('#hdpast').val();
            objParm.man = $('#hdman').val(); 
            ...  $.post(url, objParm, function(result) {
                $('#dvwait').hide();
                  ....          });</script>以上是 ajax 的提交js脚本,  我的疑问是   objParm.kwd 这些 参数应该如何在 php 页面里获得?

解决方案 »

  1.   

    $.post(url, $.param(objParm), function(result) {php:
    print_r($_POST);
      

  2.   

    jquery手册->Ajax->Ajax请求$.ajax({
      var objParm = new Object();
      objParm.kwd = $('#hdkwd').val();
      objParm.sub = $('#hdsub2').val();
      objParm.beg = $('#hdbeg').val();
      objParm.past = $('#hdpast').val();
      objParm.man = $('#hdman').val();  
       type: "POST",
       url: "/Research",
       data: "kwd="+objParm.kwd+"&sub="+objParm.sub+"...",
       success: function(msg){
         alert( "Data Saved: " + msg );
       }
    });
      

  3.   

    早试过了,是空的,包括 print_r($GLOBALS); 出来的 HTTP_POST_VARS] => Array ( ) [_GET] => Array ( ) [HTTP_GET_VARS] => Array ( ) 这样的结果,也就是都是空的什么都没提交hdkwd,hdsub2 ....  这些都是隐藏的表单的id ,但是结果页什么都没获得
      

  4.   


    <?php
    if(isset($_POST['kwd'])){
       print_r($_POST);
    }
    ?>
      

  5.   

    当然也可以用GET方式传送和获取,请看考jQuery手册中Ajax的get请求
      

  6.   

    可是程序里并没有用 data: 这个参数,而是直接 $.post(url, objParm, function(result) 把这个 objParm  对象传过去,我问题就在这里,如果用data: 谁都会写
      

  7.   

    那你讲objParm转为json再作为data传送到后端处理
      

  8.   


    问题是原代码里根本没有转换的过程,而是直接提交到后端,可是后端却什么都没获得,更别提在后端再用json decode 来转换了
      

  9.   

    jQuery中的Ajax中有讲json在js中的转化
      

  10.   

    jQuery手册的Ajax中的其他也有:
    serializeArray()
     [ 
         {name: 'firstname', value: 'Hello'}, 
         {name: 'lastname', value: 'World'},
         {name: 'alias'}, // this one was empty
      ]
    不过js中只能转换一维数组
      

  11.   

    问题是这里源代码根本没有任何转化过程 objParm.trvclass = $('#hdtrvclass').val();
                objParm.dtm = $('#hddtm').val();
                objParm.tp = $('#hdtravelclass').val();
                //alert(objParm.tp);
                objParm.domain = $('#hddomain').val();
                $('#dvroutelist').empty();
                $('#dvwait').show();

                $.post(url, objParm, function(result) {
                    
                    //处理函数            
     
                  }
      

  12.   

    真不知道你是如何做的,难道 jq 会犯这种低级错误?
    <script src=scripts/jquery-1.7.js></script>
    <script>
    var url = 'http://localhost/server.php';
    var objParm = new Object();
    objParm.id = 1;
    $.post(url, objParm, function(result) {
      alert(result);
      })
    </script>server.php
    <?php
    print_r($_POST);
      

  13.   

    我擦,楼上提醒了我,原来路径必须写全!!!就是:  var url = '/Research/index.php';我苦苦折磨了1个多小时就因为这个路径晕死