我正在研究ajax在codeigniter上的实际工作原理。而且,我面临的问题是:在ajax .php中,有一个div即"ShowMember",我想从下拉菜单中选择"成员id"后显示成员详细信息。数据不是来的好,但来的是完整的'ajax .php页面'在'ShowMember'div从下拉菜单中选择值后。请帮助。我刚开始使用codeigniter。谢谢。
ajaxex.php(视图)
<div>
<select class='form-control EmployeeIDs' name='EmployeeID' id='EmployeeIdenity'>
<option value="">Select Employee</option>
<?
foreach($results as $row)
{
$MemberID=$row->MemberID;
$EmployeeID=$row->EmployeeID;
?>
<option value="<?echo $MemberID;?>"><?echo $EmployeeID;?></option>
<?}?>
</select>
</div>
<div class='ShowMember'></div>
mystyle.js
$('#EmployeeIdenity').change(function(){
var MemberID = $('#EmployeeIdenity').val();
$.ajax({
url:"welcome/ajaxFindMemberDetails",
type:"GET",
data:{MemberID:MemberID},
success:function(result){
$('.ShowMember').html(result);
}});
});
h2控制器 class Welcome extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('news_model');
$this->load->library('session'); // Start Session
$this->load->helper('form');
$this->load->library('form_validation');
}
public function ajaxFindMemberDetails()
{
$data1['MemberDetailsResult'] = $this->news_model->memberDetails($MemberID);
$this->load->view('admin/ajaxMemberDetailsPage',$data1);
}
}
ajaxMemberDetailsPage.php(视图)
<?
foreach($MemberDetailsResult as $rowMemDetails)
{
echo $MemID=$rowMemDetails->MemberID;
?>
<?}?>
class News_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function memberDetails($MemberID)
{
$this->db->where('MemberID', $MemberID);
$query = $this->db->get('member');
$MemberDetailsResult = $query->result();
return $MemberDetailsResult;
}
}
class Welcome extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('news_model');
$this->load->library('session'); // Start Session
$this->load->helper('form');
$this->load->library('form_validation');
}
public function ajaxFindMemberDetails()
{
$data1['MemberDetailsResult'] = $this->news_model->memberDetails($MemberID);
$this->load->view('admin/ajaxMemberDetailsPage',$data1);
}
}
<?
foreach($MemberDetailsResult as $rowMemDetails)
{
echo $MemID=$rowMemDetails->MemberID;
?>
<?}?>
class News_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function memberDetails($MemberID)
{
$this->db->where('MemberID', $MemberID);
$query = $this->db->get('member');
$MemberDetailsResult = $query->result();
return $MemberDetailsResult;
}
}
你得到MemberID
在你的控制器
public function ajaxFindMemberDetails()
{
$MemberID=$this->input->get('MemberID');// get MemberID
$data1['MemberDetailsResult'] = $this->news_model->memberDetails($MemberID);
$this->load->view('admin/ajaxMemberDetailsPage',$data1);
}
和视图中的php标签ajaxMemberDetailsPage.php
<?php
foreach ($MemberDetailsResult as $rowMemDetails) {
echo $MemID = $rowMemDetails->MemberID;
}?>
实际上,Ajax代码无法找到正确的路径。所以,我试了一下,它起作用了。所以,我想分享我的变化。它可能会对某人有所帮助。@Saty, @Arnas, @Indrasinh,谢谢你们发现我的错误。这意义重大。
header。php
I have to set Baseurl here in head section of header.
<script>
var BASEURL = 'http://localhost/Project/index.php/';
</script>
AjaxEx.php
没有变化。
控制器public function ajaxFindMemberDetails()
{
$MemberID= ($this->input->get('MemberID') != '' ? $this->input->get('MemberID') : 0);
$data1['MemberDetailsResult'] = $this->news_model->memberDetails($MemberID);
$this->load->view('admin/ajaxMemberDetailsPage',$data1);
}
No Changes, As the question.
AjaxCode.js
$('#EmployeeIdenity').change(function(){
var MemberID = $("#EmployeeIdenity option:selected").val();
$.ajax({
url:BASEURL+"welcome/ajaxFindMemberDetails",
type:"GET",
data:{'MemberID':MemberID,'MemType':'Hello'},
success:function(result){
$('.ShowMember').html(result);
}});
});