![](/img/trans.png)
[英]How to call javascript function on form_input in codeIgniter
[英]Codeigntier/AJAX - Fatal error: Call to undefined function form_input() in
我只是成功地使AJAX從數據庫中獲取數據,並將其呈現到div,該div在單擊按鈕時顯示。 但是在讀取視圖中包含php的第一行時遇到了這個錯誤。
這是我的視圖文件html
<div id="association-list-wrapper" class="list-wrapper">
<?php echo form_input('filter', 'Filter by key, name, or location', array('class' => 'text-input filter', 'data-label-value' => 'Filter by key, name, or location')) ?>
<section class="table-wrapper">
<table id="association-list" class="filter-results">
<tbody>
<?php foreach ($associations as $association): ?>
<tr id="<?php echo key($association)?>" class="result-row">
<td class="td col1"><p id=""><?php echo $association['AssociationKey'] ?></p></td>
<td class="td col2"><a href="<?php echo base_url('association/'.$association['AssociationKey']) ?>"><?php echo $association['Name'].' '.$association['Title'] ?></a></td>
<td class="td col3"><p><?php echo $association['City'].', '.$association['State'] ?></p></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</section>
</div>
這是我的JS:
$('li#page1').click(function(e){
e.preventDefault();
$('#pick-list').show();
$('#association-pick-list').show();
$.ajax({
type: 'get',
url: 'http://myapp.loc/association/pick-list',
dataType: 'html',
success: function (html) {
$('#shadowbox').load('http://myapp.loc/application/views/association_management/pick_list.php');
}
});
$('.shadowbox-wrapper').fadeIn(250);
$('.shadowbox-window').fadeIn(250);
});
這是我的控制器:
public function pick_list()
{
$this->load->helper('form');
$data['associations'] = $this->association_model->get_all_associations();
$this->load->view('association_management/pick_list', $data);
}
為什么不渲染頁面? 我測試了去觸發控制器/方法的URL,它呈現的很好,但是當它用AJAX呈現時,所有的php中斷。
由於此錯誤發生
$('#shadowbox').load('http://myapp.loc/application/views/association_management/pick_list.php');
如果像上面一樣直接加載視圖,則無法在視圖頁面中訪問Controller的數據。 因此,我建議您從控制器獲取數據並在視圖上進行渲染。
您的控制器
public function pick_list()
{
$this->load->helper('form');
$associations = $this->association_model->get_all_associations();
echo json_encode(['data'=>$associations]);
}
現在,使用返回的數據渲染視圖。
試試這個,如果你不明白,請問,我會幫你的
在視圖頁面中使用它代替form_input()
echo form_open('filter', array('class' => 'text-input filter', 'data-label-value' => 'Filter by key, name, or location'));
在控制器中,也添加此
$this->load->library('form_validation');
您的視圖表單關聯中的一個錯誤是您從控制器傳遞的數組名稱。 但是您的foreach已完成$ association。 使用$ association
在表單中輸入ID並在Ajax中使用該ID
echo form_open('filter', array('class' => 'text-input filter', 'data-label-value' => 'Filter by key, name, or location','id'=>'myform'));
這個網址正確嗎?
還是這樣?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.