第一次尝试ajax,脚本没被看见?

tsh*_*uck 2 javascript php ajax jquery codeigniter

我现在已经用php/CI编写了一段时间,并开始了解它,但我正试图使用​​jQuery +一些ajax的东西,我似乎无法让它工作.这就像剧本甚至没有被看到.

我想要它做的是在用户单击提交按钮时调用java/test函数.我想添加像if(ajax)这样的东西,这就是为什么我在表单数据中有这个,但没有matte它所谓的提交函数 - 我添加了返回false所以它不会触发提交函数但它仍然是.

这是我的代码,任何帮助都会很棒.谢谢

java.php //控制器

<?php

class Java extends Controller{

    function index(){
        $this->load->view('java_view');
    }

    function submit(){
        $one = $this->input->post('one');
        $two = $this->input->post('two');

        echo $one;
    }
            function test(){
        $one = $this->input->post('one');
        $two = $this->input->post('two');

        echo $two;
    }


}   
Run Code Online (Sandbox Code Playgroud)

java_view.php // viewfile

<html>
<header>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

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

            var form_data = {
                one: ('#one').val(),
                two: ('#two').val(),
                ajax: '1',
            };

            $.ajax({
            url: "<?php echo site_url('java/test'); ?>",
            type: 'POST',
            data: form_data,
            success: function() {
                alert('success');
            }
            });
                            return false;
        }); 
    });
</script>

 </header>

 <body>

 <?php

echo form_open('java/submit');  

//setting up the fields
$form_data = array(
    'name' => 'one',
    'id' => 'one',
);

echo "<p> One </p> <br/>";

echo form_input($form_data);

$form_data = array(
    'name' => 'two',
    'id' => 'two',
);

echo "<br/> <p>Two</p> <br/>";

echo form_input($form_data);

$form_data = array(
    'name' => 'submit',
    'id' => 'submit',
    'value' => 'Submit',
);
echo "<br/>";

echo form_submit($form_data);
echo form_close();
Run Code Online (Sandbox Code Playgroud)

Sar*_*raz 5

这一行:

$('#submit').onclick(function(){
Run Code Online (Sandbox Code Playgroud)

应该:

$('#submit').click(function(){
Run Code Online (Sandbox Code Playgroud)

我认为#submit不是input type="submit",否则页面将重新加载,除非你把return false在点击处理程序结束.

更多信息:

http://api.jquery.com/click/

更新:

试试这个(添加live和其他一些修改):

 $(document).ready(function(){
    $('#submit').live('click', function(){

        var form_data = {
            one: ('#one').val(),
            two: ('#two').val(),
            ajax: '1',
        };

        $.ajax({
        url: "<?php echo site_url('java/test'); ?>",
        type: 'POST',
        data: form_data,
        success: function() {
            alert('success');
        });

        return false;
    }); 
});
Run Code Online (Sandbox Code Playgroud)