繁体   English   中英

通过ajax传递数据

[英]Passing data through 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变量“ q”发送的。 假设我有多个复选框,如何将其添加到同一发布请求中?

您可以使用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...
$.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("");
   }
});

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

您没有编写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 ['data'] ['text']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM