我正在尝试测试jQuery GET
方法,但我得到的结果是完全疯了。我想要做的就是从我的控制器用jQuery调用一个函数,然后在我的视图中显示一个div中的回显值。下面是我的代码,最后是我遇到的问题的细分。
控制器
public function generate_suggestions2() {
echo "James";
}
查看 views\suggestions_v.php
<body>
//This DIV is used a button to call the jQuery function
<div id="next_btn">
<p>Click here to display a name</p>
</div>
//In this div the value retrieved by the jQuery should be displayed
<div id="listB"></div>
//This is the function that calls the function within my controller
<script type="text/javascript">
$( "#next_btn" ).click(function() {
$.get("core/generate_suggestions2/",
function(data) {
$( "#listB" ).html(data);
});
});
</script> //For some reason I need to put the script at the end of the body. When it's in the head nothing happens when I click the button. Also something I do not understand.
</body>
现在的问题是,当我点击DIV next_btn
时,它不会在DIV James
中显示listB
。
而是使用我的主视图listB
中的源代码填充DIV views\core_v.php
我不知道这怎么可能是遥远的,所以如果你有一个线索,或者更好,你知道我做错了什么,请告诉我。我试图在过去的三天里让这个工作没有任何成功或进展:(
答案 0 :(得分:0)
这条线很奇怪:
</script><script type="text/javascript">
尝试删除第一个结束标记'script'。
答案 1 :(得分:0)
尝试在您的视图中使用此代码
<script type="text/javascript">
"$( "#next_btn" ).click(function() {
$.get("<?php echo site_url().'/core/generate_suggestions2';?>",
function(data) {
$( "#listB" ).html(data);
});
});"
</script>
同样删除此阻止评论之前的</script>
标记。
关于此评论,您有:
//For some reason I need to put the script at the end of the body. When it's in the head nothing happens when I click the button. Also something I do not understand.
这是因为DOM尚未完全加载,当浏览器加载了您所指的DOM时,Javascript会执行其代码。因此,您必须将其放在要编辑的DOM元素之后,就像现在一样,或者您可以使用$(document).ready(function(){
}
);
。
详细了解here