我一直在努力使其工作,但无法使用JSON将插入的数据从控制器传递到CI中的视图。表单中的输入值已成功插入到数据库中,但无法使其显示在视图中。
这是我的观看文件 ajax_view.php :
<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery-1.4.2.min.js"></script>
$(document).ready(function(){
$("#submit").click(function(){
var inp = $('#inp').val();
$.post("ajax/ajax_input", { 'send' : inp },
function(data){
alert(data.input_text);
}, "json");
});
});
</script>
</head>
<body>
<form id="form1" method="post" action="">
<label for="inp">Text</label>
<input type="text" name="inp" id="inp" />
<label for="submit"></label>
<input type="submit" name="submit" id="submit" value="Submit" />
这是 ajax.php 控制器的 ajax_input 方法:
<?php
// Initializing controller .....
// .............................
//ajax method
function ajax_input(){
$var_1 = trim($this->input->post('send'));
$array = array('input_text' => $var_1);
echo json_encode($array);
$this->db->insert('ajax',$array);
}
尝试使用Firebug进行调试,它让我 data.input_text 为空。
我做错了什么?
编辑: 我在Win上使用XAMPP,那么json配置是否可行?
答案 0 :(得分:2)
代码本身应该有效,这里有一些提示:
<script type="text/javascript">
)使用submit()
事件,而不是在提交输入上发生click()
事件:
<script type="text/javascript">
$(document).ready(function(){
$("#form1").submit(function(){
var inp = $('#inp').val();
$.post("ajax/ajax_input/", { 'send' : inp },
function(data){
console.log(data.input_text);
}, 'json');
return false;
});
});
</script>
切换Controller中的两行并将insert()
返回给变量以防万一:
if($this->db->insert('ajax',$array))
echo json_encode($array);
else
//echo json_encode(array("input_text"=>"Input was not inserted correctly!"));
echo json_encode(array("input_text"=>$this->db->last_query())); // for testing purposes ONLY!! don't use in live website!
答案 1 :(得分:0)
你的ajax input.php页面中有一个拼写错误。
更改:
$ array = array('
$array = array('input_text' => $var_1);
答案 2 :(得分:0)
$array = array('input_tekst' => $var_1); //why tekst?
将文字更改为文字。