Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codeigniter&;jqueryajax,发布数据不通过_Javascript_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

Javascript Codeigniter&;jqueryajax,发布数据不通过

Javascript Codeigniter&;jqueryajax,发布数据不通过,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,当我通过jQueryAjax发送post请求时,我在控制器中获取post数据时遇到问题,我已经使用firebug进行了检查,表单post数据正在提交,但是在控制器中,当我打印时($\u post);它返回一个空数组。有什么不对劲吗 以下是相关代码: 表单HTML <form id="contact-form" class="form-horizontal subscribe" accept-charset="utf-8" action="<?= base_url ( 'Contact

当我通过jQueryAjax发送post请求时,我在控制器中获取post数据时遇到问题,我已经使用firebug进行了检查,表单post数据正在提交,但是在控制器中,当我打印时($\u post);它返回一个空数组。有什么不对劲吗

以下是相关代码:

表单HTML

<form id="contact-form" class="form-horizontal subscribe" accept-charset="utf-8" action="<?= base_url ( 'Contact/' ); ?>" method="post">
    <!--Name-->
    <div class="form-group">
        <label class="sr-only" for="name">Name</label>
        <div class="input-group">
            <div class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></div>
            <input id="name" type="text" class="form-control validate" name="name" placeholder="Your full name" value="">
        </div>
    </div>
    <!--Email-->
    <div class="form-group">
        <label class="sr-only" for="email">Email</label>
        <div class="input-group">
            <div class="input-group-addon"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span></div>
            <input id="email" type="text" class="form-control validate" name="email" placeholder="Your email address" value="">
        </div>
    </div>
    <!--Message-->
    <div class="form-group">
        <label class="sr-only" for="message">Message</label>
        <div class="input-group">
            <div class="input-group-addon"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span></div>
            <textarea id="message" name="message" class="form-control" rows="3" placeholder="Message"></textarea>
        </div>
    </div>
    <!--Submit Button-->
    <div class="form-group text-right">
        <input id="contact_us" type="hidden" name="contact_us" value="Submit" />

        <button type="submit" id="contact_us" class="btn btn-warning" name="contact_us" value="Submit">
            Send &nbsp;<span class="glyphicon glyphicon-send" aria-hidden="true"></span>
        </button>
    </div>
</form>

如果您使用的是jquery,则应使用以下语法:

$.post('url',$("#contact-form").serialize(),function(data){
 //here take action on returned data
});
您只需更改
数据:$(this).serialize(),


数据:$(“#联系方式”).serialize(),


在ajax中,
$this
不起作用,因为在ajax中调用$this时,
$this
始终调用父对象ajax。

更改
数据:$(this)。序列化(),
数据:新表单数据($(“#联系人表单”)[0])
删除
数据类型:“json”
如果这对您不起作用,请告诉我?

学生x。这可能不是您的答案,但这是您通过表单所需的全部内容

$(function() {
"use strict";
$("#form1").submit(function() {
    var data = $("#form1").serialize();
    //alert(data); return false;
    $.ajax({
        url: "/forms/form1",
        data: data,
        type: "POST",
        success: function(msg) {
            if (msg) {
                $("#display").html(msg);
            } else {
                $("#display").text("nothing came back For some reason");
            }
        }
    });
    return false;
});
}))

你也可以用这个。我所有的表单都使用这个,然后我只需要一个脚本。当然,你会改变成功。只需使用ajax ID命名所有表单

(function() {
"use strict";
$('form#ajax').on('submit', function() {
    var that = $(this),
        url  = that.attr('action'),
        type = that.attr('method'),
        data = {};
    that.find('[name]').each(function(index, value) {
        var that   = $(this),
            name   = that.attr('name'),
            value  = that.val();
        data[name] = value;
    });
$.ajax({
    url: url,
    type: type,
    data: data,
    success: function(response) {
        $('#display').html(response).delay(8000).fadeOut(1000);
    }
  });
return false;
}));
})(jQuery)

这将适用于图像上载到。。。serialize()在提交图像时可能会出现问题…将
数据:$(此)。serialize()
,更改为
数据:新表单数据($('contact form')[0])
确实有效,但您能否解释
$('contact form')[0]
?如果firebug显示正在传输的post数据,则表示
数据:$('contact form')).serialize(),
正在工作。无论如何,我尝试了您的更改,但也没有成功:(
$(function() {
"use strict";
$("#form1").submit(function() {
    var data = $("#form1").serialize();
    //alert(data); return false;
    $.ajax({
        url: "/forms/form1",
        data: data,
        type: "POST",
        success: function(msg) {
            if (msg) {
                $("#display").html(msg);
            } else {
                $("#display").text("nothing came back For some reason");
            }
        }
    });
    return false;
});
(function() {
"use strict";
$('form#ajax').on('submit', function() {
    var that = $(this),
        url  = that.attr('action'),
        type = that.attr('method'),
        data = {};
    that.find('[name]').each(function(index, value) {
        var that   = $(this),
            name   = that.attr('name'),
            value  = that.val();
        data[name] = value;
    });
$.ajax({
    url: url,
    type: type,
    data: data,
    success: function(response) {
        $('#display').html(response).delay(8000).fadeOut(1000);
    }
  });
return false;