Php 如何使用jquery对话框按钮提交表单?

Php 如何使用jquery对话框按钮提交表单?,php,javascript,jquery,ajax,codeigniter,Php,Javascript,Jquery,Ajax,Codeigniter,大家好,我只是想问一下如何使用jquery对话框按钮处理表单提交。在我的代码中,我有一个按钮,当你点击它时。它将在对话框中弹出一个窗体。下面是确定和取消的jquery按钮。我的问题是我不能提交我的表单。我唯一的选择就是在表单中创建一个提交按钮。但是我想改用jquery按钮。我正在使用CodeIgniter,希望你能帮助我 我的视图(showAllSuppliers.php) 你需要ajax调用 $('#submit').click(function (){ var first_n

大家好,我只是想问一下如何使用jquery对话框按钮处理表单提交。在我的代码中,我有一个按钮,当你点击它时。它将在对话框中弹出一个窗体。下面是确定和取消的jquery按钮。我的问题是我不能提交我的表单。我唯一的选择就是在表单中创建一个提交按钮。但是我想改用jquery按钮。我正在使用CodeIgniter,希望你能帮助我

我的视图(showAllSuppliers.php)

你需要ajax调用

$('#submit').click(function (){
        var first_name = $('#first_name').val();
        $.ajax({
            url : '/supplier_controller/insertNewSupplier,
            type : 'post',
                    data : first_name,
            success : function(){
                        //do something;
                        console.log(first_name);
                    }           
                })
                    return false;
            });

这将工作,如果你广告id提交按钮和您的输入。但是您也可以通过html标记调用它们。这只是你的一个想法或例子。

试着改变这一行和你通常的js:

$attr = array('id'=>'addSupplier');
echo form_open('supplier_controller/insertNewSupplier', $attr);
如果仍然没有提交表单,那么尝试通过ajax调用提交

$(".hero-unit input[name=add_supplier]").on('click',function(){
    $('#popup').load("<?php echo site_url("supplier_controller/addNewSupplier/"); ?>").dialog({
        title: "Add New Supplier",
        autoOpen: true,
        width: 800,
        modal:true,
        position: "center",
        buttons: {
            OK: function(){
                 $.ajax({
                    url     : '<?=base_url()?>supplier_controller/insertNewSupplier',
                    type    : 'POST',
                    data    : $("#addSupplier").serializeArray(),
                    success : function(resp){
                        alert("Submitted !!!");
                        $(this).dialog( "close" );
                    },
                    error   : function(resp){
                        //alert(JSON.stringify(resp));
                    }
                 });
            },
            CANCEL: function() {
                $(this).dialog( "close" );
            }
        }
    });
});
$(“.hero单元输入[name=add\u supplier]”)。在('click',function()上{
$('#弹出框')。加载(“”)。对话框({
标题:“添加新供应商”,
自动打开:对,
宽度:800,
莫代尔:是的,
位置:“中心”,
按钮:{
好的:函数(){
$.ajax({
url:'supplier\u controller/insertNewSupplier',
键入:“POST”,
数据:$(“#添加供应商”).serializeArray(),
成功:功能(resp){
警告(“已提交!!!”;
$(此).dialog(“关闭”);
},
错误:函数(resp){
//警报(JSON.stringify(resp));
}
});
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
});

如果您想使用经典表单提交而不是ajax调用,请为按钮参数编写以下代码行:

buttons: {
            OK: function(){
                 $(this).dialog().find('form').submit();
            },
            CANCEL: function() {
                $(this).dialog( "close" );
            }
        }

$('#formId')。提交();我试过了。下面是我所做的
OK:function(){$(“#addSupplier”).submit();//我如何使用它提交我的表单?},
它也不会提交我的表单。这是一个jquery ui对话框吗?是的。我包括了一个OK和Cancel按钮,上一个示例仅适用于submit按钮。有没有办法获取jQueryUI对话框按钮的按钮id?我做到了。填写完字段并单击“确定”按钮后,会弹出一个警报,但表单不会进入我的控制器。警报是什么?更改此行:
data:$(“#addSupplier”).serializeArray(),
data:{'data':$(“#addSupplier”).serializeArray(),
和此
警报(“已提交!!!”
警报(“已提交!!!”+resp)。在控制器上写入
print\r($\u POST);死亡在第一行。让我知道它发出的警报。当我点击OK按钮时,出现了一个弹出窗口,显示提交的单词和一组数组。是的。现在,您只需要在模型中传递该数组并编写插入代码。就这样。您的表格已提交!:D
$attr = array('id'=>'addSupplier');
echo form_open('supplier_controller/insertNewSupplier', $attr);
$(".hero-unit input[name=add_supplier]").on('click',function(){
    $('#popup').load("<?php echo site_url("supplier_controller/addNewSupplier/"); ?>").dialog({
        title: "Add New Supplier",
        autoOpen: true,
        width: 800,
        modal:true,
        position: "center",
        buttons: {
            OK: function(){
                 $.ajax({
                    url     : '<?=base_url()?>supplier_controller/insertNewSupplier',
                    type    : 'POST',
                    data    : $("#addSupplier").serializeArray(),
                    success : function(resp){
                        alert("Submitted !!!");
                        $(this).dialog( "close" );
                    },
                    error   : function(resp){
                        //alert(JSON.stringify(resp));
                    }
                 });
            },
            CANCEL: function() {
                $(this).dialog( "close" );
            }
        }
    });
});
buttons: {
            OK: function(){
                 $(this).dialog().find('form').submit();
            },
            CANCEL: function() {
                $(this).dialog( "close" );
            }
        }