php - 第一次尝试ajax,脚本没有被看到?

标签 php javascript jquery ajax codeigniter

我已经用 php/CI 编码了一段时间,并开始掌握它的窍门,但我试图跨越使用 jQuery + 一些 ajax 的东西,但我似乎无法理解让它工作。就像剧本根本没有被看到一样。

我希望它做的是当用户单击提交按钮时调用 java/test 函数。我想添加类似 if(ajax) do some 的内容,这就是为什么我在表单数据中添加它,但不管它调用什么提交函数 - 我添加了 return false 这样它就不会触发提交函数,但仍然如此。

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

java.php// Controller

<?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;
    }


}   

java_view.php// View 文件

<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();

最佳答案

这一行:

$('#submit').onclick(function(){

应该是:

$('#submit').click(function(){

我假设#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;
    }); 
});

关于php - 第一次尝试ajax,脚本没有被看到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3336595/

相关文章:

php - CakePHP 1.3 : Alaxos ACL Plugin not recognizing Pages Plugin

javascript - 不带显示/隐藏选项的切换方法

javascript - 更新 KnockoutJS 关联 observableArray 值

javascript - 函数运行一次成功然后连续失败

php - jquery 切换问题

javascript - 根据下拉菜单实例化新的 javascript

php - 重定向到不同的标签页

php - 如何使用 PHP CodeSniffer 设置我喜欢的缩进级别?

php - 如何使用mysql创建用户等级?

javascript - 使用 Google Sheets Apps 脚本访问 Telegram 机器人菜单的示例 1