我已经用 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
放在末尾点击处理程序。
更多信息:
更新:
试试这个(添加了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/