通过ajax传递数据

时间:2015-08-29 14:09:46

标签: javascript jquery ajax

我正在按照教程传递文本来搜索ajax,它运行良好。现在我想传递复选框值。有人能指出我正确的方向吗?现在我有:

             function search(){

                  var term=$("#search").val();

                  if(term!=""){
                    $("#result").html("<img src='/img/spin.gif'/ style='margin-top: 30px;'>");
                     $.ajax({
                        type:"post",
                        url:"file.php",
                        data:"q="+encodeURIComponent(term), /* encodeURI is used to escape things such as plus sign */
                        success:function(data){
                            $("#result").html(data);
                            $("#search").val("");
                         }
                      });
                  }

所以,基本上我认为文本是通过post变量&#34; q&#34;发送的。我们说我有一系列复选框,如何将其添加到同一个帖子请求中?

3 个答案:

答案 0 :(得分:1)

你可以使用jQuery的序列化。

$('#form').submit(function(e) {

    var data  = $('#form').serialize();

    $.post('form.php',data, function(status) {
        if(status == 'success') {
            // success
        } else {
            // error
        }
    });
    e.preventDefault();
});

form.php的

<?php

$search = $_POST['search'];
etc...

答案 1 :(得分:0)

$.ajax({
   type:"post",
   url:"file.php",
   data: {
       q: encodeURIComponent(term), /* encodeURI is used to escape things such as plus sign */
       checkboxes: $('input[type=checkbox]').serialize()
   }
   success:function(data){
      $("#result").html(data);
      $("#search").val("");
   }
});

答案 2 :(得分:0)

如果您尝试serialize数据,这对您来说会更简单。

你没有写出你的html的样子,所以让我们说你有一个这样的表格:

<form id="form">
   Search text: <input type="text" name="data[text]"/>
   <input type="checkbox" name="data[option]" /> Option 1
   <input type="submit" value="Search"/>
</form>

要使用ajax请求发送此表单,您所要做的就是序列化表单

$('#form input[type="submit"]').click(function(e) {
   e.preventDefault();

   $.post("file.php", $("#form").serialize(), function(){
       console.log('success');
   });
});

然后在您的PHP脚本中,您可以从$ _POST变量中检索数据,例如$ _POST [&#39;数据&#39;] [&#39; text&#39;]