Bootstrap模态Ajax表单提交返回空的$ _POST - php

我想用ajax提交我的模式表单。首先,我用一些预定义的数据填写表格。这部分有效。但是,当我单击“提交”按钮时,虽然确实在form.php脚本中出现了问题,但是在脚本中,$ _ POST为空。我在这里做错了什么?

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="exampleModalLabel">Edit MAC alias</h4>
            </div>
            <div class="modal-body">
                <form class="macalias" name="macalias" id="macalias">
                    <input type="hidden" class="form-control" id="valmac" name="valmac">
                    <div class="form-group">
                        <label for="message-text" class="control-label">Alias:</label>
                        <input type="text" class="form-control" id="valalias" name="valalias">
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        <button type="submit" class="btn btn-default" data-dismiss="modal">Save</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>


<script>
    $(function ()
    {
    // fill the form with data (this part works)
    $('#exampleModal').on
    ('show.bs.modal', function (event)
        {
            var button = $(event.relatedTarget)
            var valmac = button.data('valmac')
            var valalias = button.data('valalias')
            var modal = $(this)
            modal.find('.modal-title').text('Edit alias for ' + valmac)
            modal.find('.modal-body input[id=valmac]').val(valmac)
            modal.find('.modal-body input[id=valalias]').val(valalias)
        }
    )

    $( ".macalias" ).submit(function( event ) {
      //cancel the default submit action by calling
        event.preventDefault();
        $.ajax({
            type: "POST",
            url: "form.php",
            data: $('form#macalias').serialize(),
            success: function(msg){
                $('#exampleModal').modal('hide')
            },
            error: function(){
                alert("failure");
            }
        });
    });
});
</script>

编辑:代码现在可以使用

参考方案

您的表单有一个名为macalias的类,因此它应该是

data: $('form.macalias').serialize()

编辑!

您可以监听按键(Enter),但是我认为最好为表单提交附加事件处理程序。更换

$("input#submit").click(function(){...});

$( ".macalias" ).submit(function( event ) {
  //cancel the default submit action by calling
  event.preventDefault();

  //Your ajax stuff
});

并更改为提交按钮

<button type="submit" class="btn btn-default" data-dismiss="modal" >Close</button>

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

使用PHP包含时的淡入淡出过渡 - php

我正在尝试使用jQuery或CSS(或其他方式!)在DIV中包含的php页面上创建淡入淡出或滑动过渡。我四处搜寻,发现了很多淡入淡出过渡的示例,这些实例彼此淡入淡出div或隐藏内容淡入淡出,但是这种情况略有不同。我有一个DIV,其内容由导航栏控制。选中后,每个页面都可以使用PHP成功地包含在div中,但我想使内容淡入和淡出。关于如何在页面更改之间进行漂亮过渡…

在jquery中每行的表中动态创建按钮 - php

只有第一行正在更新。.我能够创建动态创建的选择标签和按钮,但是每次我选择下拉菜单时,只有第一行正在更新,其他行将仅警告“选择第一”。即使我已经选择了一个选项。jQuery func'$('input').each(function(){ if($(this).attr("type")=="button…