簡體   English   中英

Codeigntier / AJAX-致命錯誤:調用未定義函數form_input()

[英]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'));

這個網址正確嗎?

網址:“ http://myapp.loc/association/pick-list ”,

還是這樣?

網址:“ http://myapp.loc/association/pick_list ”,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM