我对我的网站有点困惑,目前在我的网站的新部分(其中包括)用户翻阅缩略图并获得显示在其下方的文章摘要,然后当他们点击所述缩略图时,文章出现在页面左侧,
ajax的工作原理是从链接中拉出href来覆盖缩略图,然后使用它作为方法调用的url,问题是click版本也将使用相同的函数调用,我无法弄清楚如何为了显示取决于甚至发生的事情的不同内容,目前我将其作为我的代码,
<?php
if(isset($content)) {
foreach($category_name as $k => $v) {
echo "<h2 class='$v[category_name]'><a href='#'>$v[category_name]</a></h2>";
echo "<div class='$v[category_name]'>";
}
$replace = array(".", "png", "gif", "jpg");
$count = 0;
foreach($content as $k=>$v) {
$count ++;
$image_name = str_replace($replace, "", $v['image_name']);
echo "<a class='contentlink' href='index.php/home/get_content_abstract/$v[content_id]'>";
echo "<img src='/media/uploads/".strtolower($v['category_name'])."/".$image_name."_thumb.png' alt='This is the picture' />";
echo "</a>";
}
echo "</div>";
//die(var_dump($content));
}
?>
<script>
$("a.contentlink").mouseover(function(){
var url = $(this).attr("href");
$.ajax ({
url: url,
type: "POST",
success : function (html) {
$('#abstract').html(html);
}
});
});
$("a.contentlink").click(function(ev) {
ev.preventDefault();
$('#main_menu').hide();
var url = $(this).attr("href");
$.ajax({
url:url,
type: "POST",
success : function (html) {
// alert(html)
$('#left-content').html(html);
}
})
});
</script>
被调用的方法是
public function get_content_abstract() {
$this->load->model('content_model');
if($query = $this->content_model->get_content_by_id($this->uri->segment(3))) {
$data['abstract'] = $query;
}
$this->load->view('template/abstract', $data);
}
这是由链接/ get_content_abstract / 3之后的ajax调用的,其中3或任何其他数字是文章ID。
如何排序以便我可以再次使用此功能,但只显示文章的正文内容而不是摘要如果单击并删除链接?
答案 0 :(得分:2)
您可以传递一个调用类型变量并在您的php代码中检查它。请注意,我已将data
添加到您的ajax调用中。
$("a.contentlink").mouseover(function(){
var url = $(this).attr("href");
$.ajax ({
url: url,
type: "POST",
data: "calltype=abstract",
success : function (html) {
$('#abstract').html(html);
}
});
});
$("a.contentlink").click(function(ev) {
ev.preventDefault();
$('#main_menu').hide();
var url = $(this).attr("href");
$.ajax({
url:url,
type: "POST",
data: "calltype=full",
success : function (html) {
// alert(html)
$('#left-content').html(html);
}
})
答案 1 :(得分:0)
在ajax调用的url中传递一个GET变量。
答案 2 :(得分:0)
您只需通过GET或POST将变量传递给处理程序,告诉处理程序显示哪些内容。由于您的AJAX调用很简单,您可以简化调用并使用load()
。如果您不能使用$ _GET或$ _POST,只需在URL中附加数据:
$("a.contentlink").mouseover(function() {
// URL becomes index.php/home/get_content_abstract/3/abstract
$('#abstract').load($(this).attr("href")+'/abstract');
});
$("a.contentlink").click(function(ev) {
$('#main_menu').hide();
// URL becomes index.php/home/get_content_abstract/3/full
$('#left-content').load($(this).attr("href")+'/full');
return false;
});
在PHP中,您可以使用以下内容:
public function get_content_abstract() {
$this->load->model('content_model');
if($this->uri->segment(4) == 'full') {
// Load full content
} else {
// Load abstract
}
$this->load->view('template/abstract', $data);
}