【发布时间】:2016-07-29 18:31:56
【问题描述】:
我刚开始使用 PHP OOP,目前正在使用 Code Igniter 框架。我在使用 AJAX 将数据发送到控制器时遇到了一些问题,因此我想出了最简单的方法来测试 AJAX 是否正常工作,这不起作用。
外部JS文件:
function confirm_add_user()
{
var name1 = $("#name").val();
var page = base_url+'User/test/';
$.ajax({
url: page,
type: 'POST',
data:{ nameA : name1},
success:function(data) {
alert("Pass");
},
error: function(){
alert("Fail");
}
});
}
控制器:
public function test()
{
$name = $this->input->post('nameA');
echo "Name: $name";
}
查看:
<button type="submit" class="btn btn-primary" id="submit" onclick="confirm_add_user()">Submit</button>
我已经完成的检查:
1. JQuery file is linked.
2. name1 or $("#name").val() gets the correct data from it's text input field.
3. Base_url is the correct url.
如果我在这里错了,请纠正我,当右击提交按钮时,它应该会提醒/弹出一个Pass 对话框。但是,我得到的是Fail,如果 ajax 失败,我会指出警报。已经尝试解决了很长一段时间,但我还没有就这个问题得出任何结论,所以我来到 stackoverflow 寻求指导和帮助。关于可能或可能是什么问题的任何帮助?
我的主要目标是能够在当前页面上加载一个视图(不确定它是否是正确的放置方式)但我还没有取得进展,因为我无法从我的表单输入字段中发送任何数据到控制器功能。
编辑:
经过一段时间的尝试,我发现当我直接在视图中编写js时,特别是使用这些代码,它可以工作:
$(document).ready(function(){
$('#add_user_form').on('submit', function(form){
form.preventDefault();
$.post('<?php echo base_url();?>/index.php/User/add_this_user', $("#add_user_form").serialize(), function(data){
$('div.test').html('gaefwef');
});
});
});
但是,当我在外部 js 文件中使用它时,它不会。我尝试了一个测试功能,只是为了查看 js 文件是否通过使用警报正确链接,并且确实如此,问题仍然存在于 ajax 的某个地方。是因为表单的阻止默认值吗?我不太确定。目前仍在试验中。
【问题讨论】:
-
提醒“页面”并检查网址
-
尝试使用小案例类名
base_url+'user/test/' -
检查你的base_url,因为它是CI而不是JS中的PHP函数
-
能否请您提供有关失败的更多详细信息,网络选项卡在浏览器的调试器中显示什么?
-
抱歉回复晚了,编辑了我在问题中的回复。
标签: javascript php jquery ajax codeigniter