我还不明白Ajax如何与CodeIgniter一起使用。我解释了你的问题。
在“文章”视图中,我最初加载所有文章。我也有一个选择框。当我执行“onChange”时,我使用经典的“xmlhttp”执行getData()Ajax调用。结果是只查看具有所需技术的文章。 “Tipology”是View后面的连接器字段(我看到所有文章)和Ajax文件。
Firefox控制台显示的错误如下:
GET http://localhost/CodeIgniter/index.php?c=ajax_controller?tipologia=Recensioni 404 Not Found 13ms
我不知道这是否是正确的方法,但在这里我附上了我的代码,解释了这个过程:
主要文章观点:
<select onChange="getResults()" name="tipologia" id="tipologia">
<option>--Seleziona--</option>
<option>Recensioni</option>
<option>News</option>
</select>
在主要文章视图中,这是ajax调用
var xmlhttp;
function getResults() {
xmlhttp = new XMLHttpRequest();
var tipologia = document.getElementById("tipologia").value;
var url = "./index.php?c=ajax_controller?tipologia=" + tipologia;
xmlhttp.onreadystatechange = callback;
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function callback() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log(xmlhttp.responseText);
}
}
响应应该替换(innerHTML = responseText)实际包含此代码的div(但是,未过滤的View和过滤后的View应该执行相同的foreach):
foreach ($contacts as $contact) {
echo $contact->id;
echo " -> ";
echo $contact->artist;
echo " : ";
echo $contact->album;
echo " -> ";
echo "<a href='/CodeIgniter/index.php?c=new_controller id=".$contact->id."'>Dettagli</a>";
echo "</br>";
}
这总是发生在主文章视图中。
在模型中我有这个功能
function get_ajax_results() {
$tipologia = $_REQUEST['tipologia'];
$query = $this->db->query("SELECT artist, album, cover FROM contacts WHERE tipologia = '".$tipologia."' ");
return $query->result();
}
在Ajax控制器中......
public function index() {
$this->load->model("new_model");
$data['contacts'] = $this->new_model->get_ajax_results();
$this->load->view('ajax_view', $data);
}
错误在哪里?