程式範例參考網址:http://mbahcoding.com/php/codeigniter/codeigniter-server-side-ajax-crud-modal-validation.html
這個範例是將頁面設成default_controller
如果按照他的原本設定,是可以正常執行的,他將這個範例變成首頁
$route['default_controller'] = 'person';
但是這個範例對我而言,當然不可能是首頁,只是其中一個功能而已
可是如果我直接將default_controller改回預設值
$route['default_controller'] = 'welcome';
就會出現像附圖那樣的錯誤.....
請問該如何修改才能夠正常顯示呢?
看了一下,跟$route應該沒關係。
問題出在Person_model.php,裡面有幾段會判斷$_POST["search"]["value"]是否有值,不過通常操作時應該都不會有(連$_POST["search"]都沒有,就不要說後面的2東西),所以跑出這個「Notice」。
Notice通常只是用來提醒用的,並不是錯誤。如果覺得干擾,可以透過php的設定讓他不會直接在頁面跑出來。當然,你也可以想辦法把它清掉。
我一開始也以為和route沒有關係,就是依照你提的思路這樣去逐一修正,但是最後發現,從model拋到controller,再拋到view裡面的資料,view的ajax會拿不到,出現另一種錯誤,但是我直接把拋出去的資料在view上面印出來,確實是有拿到的。
直接下載範例網址裡面的檔案,程式碼是一樣的,在完全不做任何修改的情況下,本機上也是可以正常執行的,後來我從JS裡面去爬,發現裡面是有search欄位的,就是不知道為什麼,如果改了route,就會直接死給我看.....
你為什麼要直接瀏覽 index.php/person/ajax_list 這個頁面呢?
這邊看起來是給 ajax 用的 api, 而且預期會有 post 資料
就算沒有改 route 也一樣會噴這些訊息給你看
你直接瀏覽的話
weiclin提到:
就算沒有改 route 也一樣會噴這些訊息給你看
答案如上述,感謝weiclin...
另外,如果你瀏覽index.php/person時,index.php/person/ajax_list這個request是DataTable這個jquery plugin自己送出的,所以該有的參數都會帶上。
感謝fillano大大的說明,真的給了我很大的幫助!!
我會一直想要去call ajax_list這個頁面,是因為CI在呼叫其他頁面時的結構是這樣的....index.php/Controller/Views,所以一直沒有往直接呼叫Controller而不指定view的方向去思考....
這是我原本想要套用這個範例的後台
如圖:https://drive.google.com/open?id=0B5UPfJ72YnFQY1pSMjZKd0NEM1k
我原本的目標是一個Controller裡面可能會有多個這樣的table,但是以範例看起來,應該是一個Controller只能有一個table,如果要多個的話,可能還得再想想....