我想要实现的 用ajax 提交表单数据 ,如下:
$.ajax({
   type: "POST",   //提交方式
   url: "manage/administrator/get_systemval",  // 提交路径
   data: "name=John&location=Boston", 
// 参数   问题出现在这里,因为我的表单元素的每个值都要传到控制器中去处理,我不想  将表单的值 一个个的取出来 传过去, 我想要实现类似于 我们点击 submit 按钮 在表单中 用action 提交路径 表单元素命名 我用的格式   统一为: form['xxx']   然后在后台接的时候  我用一句$this-> input -> post('form'); 就可以将表单的值 全部接过来! 现在想使用 ajax方式 去实现!   success: function(msg){
     alert( "Data Saved: " + msg );
   }
}); 请各位大侠帮忙!! 

解决方案 »

  1.   

    JQuery
    按LZ的意思是data后面的值应该就是数组了.还没有遇到过,不知道能不能实现.
      

  2.   

    http://www.wwoon.com/?aid=80你可以看看...
      

  3.   

    用form控件只不过是方便了操作,协议还是http协议,ajax发送的data属性应该就是http request body.
    你完全可以写个js函数把form控件的name,value串起来作为发送参数发送过去啊。
      

  4.   

    如果你不用插件...一个页面十几个文本框都经的你去写data了...
      

  5.   

    //自己拼装了,就是数组接收值吧???不过jquery.form.js也不错function encodeFormData(formElement) { //formElement == $('#XXX');
      var whereClause = ""; 
      var and = ""; 
      for ( i = 0 ; i < formElement.length ; i++ ) { 
        var element = formElement[i]; 
        if ( element.name != "" ) { 
          if (element.type=='select-one') { 
            element_value = element.options[element.selectedIndex].value; 
          } else if ( element.type == 'checkbox' || element.type == 'radio' ) { 
            if ( element.checked == false ) { 
              break;    
            } 
            element_value = trim(element.value); 
          } else { 
            element_value = trim(element.value); 
          } 
          whereClause += and + 'form[' + trim(element.name) + ']=' + element_value.replace(/\&/g,"%26"); 
          and = "&" 
        } 
      } 
      return whereClause; 
    }
      

  6.   

    jquery ???<script type="text/javascript" src="http://malsup.com/jquery/form/jquery.form.js"></script><script type="text/javascript">
    $(document).ready(function(){ 
        var url = 'ajax_server.php';    //ajax的post提交
        $.post(url,
            { data: $("#form1").formSerialize()},
            function(data){
                alert(data);            //debug:data即为处理结果
            });                       
     
    }); 
    </script>  
      

  7.   

    类似这样
    <form name="frm" id="frm">
      <input type="text" name='key1' value="val1"/>
      <input type="text" name='key2' value="val2"/>
      <input type="text" name='key3' value="val3"/>
      <input type="text" name='key4' value="val4"/>
     
    </form>
    <script>
      var of = document.getElementById('frm')
         ,ip = of.elements
         ,postdata = []
      for(var i=0,j=ip.length;i<j;i++){
       postdata[postdata.length] = ip[i].name + '=' + ip[i].value;
      }
      alert(postdata.join('&'));
    </script>
      

  8.   

    我用extjs,
    new Ext.Ajax.request({
      form : 'form id值'
     ,upload : true
    })
    就可以构造个POST带文件上传的ajax请求,相信jquery也有相应办法。用了框架还自己写感觉有点傻,虽然原理都差不多。
      

  9.   


    //jquery果然效率高,,,,,我前面贴的有点问题,再献丑一次吧,个人测试通过
    function encodeFormData(formElement) { //formElement == $('#XXX');
      var whereClause = ""; 
      var and = "";
      for ( i = 0 ; i < formElement.length ; i++ ) { 
        var element = formElement[i];
    alert(i);
        if ( element.name != "" ) { 
          if (element.type=='select-one') { 
            element_value = element.options[element.selectedIndex].value; 
          } else if ( element.type == 'checkbox' || element.type == 'radio' ) { 
            if ( element.checked == false ) { 
              continue;    
            } 
            element_value = element.value; 
          } else {
            element_value = element.value; 
          } 
          whereClause += and + 'form[' + element.name + ']=' + element_value.replace(/\&/g,"%26"); 
          and = "&" 
        } 
      } 
      return whereClause; 
    }
      

  10.   

    嗯,prototype\jquery都可以用formSerialize来序列化表单项,而后用ajax提交!
    当然,也可以自定义一个函数来循环表单项
      

  11.   

    强烈支持该贴,其实自己的项目中获取页面上信息的方式就是楼主所问的,可惜我每天只知道$this->data['xxx'],即页面上的信息都保存到data数组中去的。明天一定要看明白到底是怎么实现的!也希望这里的高手们能解决这个问题!呵呵,关注ing!
      

  12.   

    不错的 formSerialize 。jq
      

  13.   

    jquery核心部分就有serialize(),http://api.jquery.com/serialize/