Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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
CodeIgniter Javascript表单提交_Javascript_Jquery_Ajax_Codeigniter - Fatal编程技术网

CodeIgniter Javascript表单提交

CodeIgniter Javascript表单提交,javascript,jquery,ajax,codeigniter,Javascript,Jquery,Ajax,Codeigniter,我首先想说,我对javascript和jQuery非常陌生。 我想这是一个非常愚蠢和简单的问题,我知道在这方面有很多问题,我都试过了。虽然我似乎不能解决我的问题 我有一个输入字段和一个提交按钮。单击submit,我想将输入文件的内容保存到数据库中,并继续保持页面内容不变 我的Javascript代码如下所示: <script type="text/javascript"> $(document).ready(function() {

我首先想说,我对javascript和jQuery非常陌生。 我想这是一个非常愚蠢和简单的问题,我知道在这方面有很多问题,我都试过了。虽然我似乎不能解决我的问题

我有一个输入字段和一个提交按钮。单击submit,我想将输入文件的内容保存到数据库中,并继续保持页面内容不变

我的Javascript代码如下所示:

 <script type="text/javascript">
        $(document).ready(function()
        {
            $('#submit').submit(function(e)
            {

                e.preventDefault();
                var msg = $('#uname').val();
                $.post("c_test/test_submit", {uname: msg}, function(r) {
                   console.log(r);
                });
            });
        });
    </script>

$(文档).ready(函数()
{
$(“#提交”).submit(函数(e)
{
e、 预防默认值();
var msg=$('#uname').val();
$.post(“c_test/test_submit”,{uname:msg},函数(r){
控制台日志(r);
});
});
});
我的html代码如下(我使用codeigniter):

$this->load->helper('form');
回声形式_open();
$data=array('name'=>uname','id'=>uname');
回显表单输入($data)。'
; $data=array('name'=>'submit'、'id'=>'submit'、'value'=>'submit'); echo表单_提交(数据); 回声形式_close();
如果有人能指出我的愚蠢,我将不胜感激。谢谢

可能是这样的:

$data=array('name'=>'submit','id'=>'submit','value'=>'Submit','onsubmit'=>'return false;');
<?php
$this->load->helper('form');

echo form_open('', array( 'id' => 'myform'));
..

这将阻止表单发布,从而阻止页面刷新。但是,它要求您通过ajax提交表单。

看起来id为“submit”的
元素是表单的提交按钮-
。但是,
submit
事件是由表单而不是submit按钮触发的,因此绑定事件处理程序不会触发

将“submit”
id
移动到表单上,或者在绑定
submit
事件处理程序时更改选择器:

$('form').submit(function(e) {
    // handle submit event from the form
});

你必须这样做:

$data=array('name'=>'submit','id'=>'submit','value'=>'Submit','onsubmit'=>'return false;');
<?php
$this->load->helper('form');

echo form_open('', array( 'id' => 'myform'));
..
“提交”事件始终指向窗体,而不是窗体按钮。

您正在使用的

$('#submit').submit(function(e){ ... });
在这种情况下,
submit
按钮/输入
id
,它没有类似于
submit
的事件,您可以使用
单击
事件,如

$('#submit').click(function(e){ ... });

否则,您可以更改以下行

echo form_open();

而不是

$('#submit').click(function(e){ ... });
你可以用

$('#myform').submit(function(e){
    e.preventDefault();
    var msg = $('#uname').val();
    var url=$(this).attr('action');
    $.post(url, {uname: msg}, function(r) {
        console.log(r);
    });
});


虽然我能够从代码中推断出问题所在,但如果您在问题中准确地解释您遇到的问题是什么,这通常是有用的。如果你得到的功能不是你所期望的,那么说一下该功能是什么。此外,并非每个人都使用与你相同的语言来生成HTML(就我个人而言,我从未使用codeigniter,尽管有可能知道你发布的代码应该做什么),因此包含实际的,在询问与jQuery或常规JavaScript相关的问题时生成HTML。对此我很抱歉。我一定会记住这一点,以后在这里。非常感谢。这很有帮助。。我还想知道返回false的意义是什么?返回false只是为了确保表单永远不会以正常方式通过浏览器提交。如果您返回true或根本不返回任何内容,这意味着您有可能发送表单。如果返回false,您只需确保JavaScript会阻止您这样做。这不是必需的,但我经常遇到这种情况,我总是加上它,只是为了确保表格不会被发送:)非常感谢你这样的描述性回答。。它工作得非常好。。就jQuery而言,我确信我有很多阅读要做。
$('#submit').click(function(e){ ... });
$('#myform').submit(function(e){
    e.preventDefault();
    var msg = $('#uname').val();
    var url=$(this).attr('action');
    $.post(url, {uname: msg}, function(r) {
        console.log(r);
    });
});
$('#myform').on('submit', function(e){
    e.preventDefault();
    var msg = $('#uname').val();
    var url=$(this).attr('action');
    $.post(url, {uname: msg}, function(r) {
        console.log(r);
    });
});