-2

削除機能を1つ作りたいのですが、どの手順が間違っていたのかわかりません。

これはファイル モデルです。

function delete()
{
    $this->db->delete('ns_categories', array('cat_id' => $cat_id));     
}

コントローラ:

function delete()
{
    $this->cat_model->delete();
    $cat_id=$this->uri->segment(3);
    if($cat_id->delete()) return json_encode(array("success" => true));            
}

意見:

<td class="centeralign"><a class="deleterow" href="<?php echo anchor('admin/categories/delete' .<?php echo $row['cat_id']; ?>"><span class="icon-trash"></span></a></td>

私を助けてください。

4

3 に答える 3

1

あなたは正しいことを何もしていません。それは混乱です。

意見:

ここでスラッシュが抜けています:

href="<?php echo 'admin/categories/delete' .<?php echo $row['cat_id']; ?>"
                                        ^^^

...しかし、とにかくこの方法を使用しないanchor()でください。リンク全体が生成されます。そして、あなたは 2 つの s を入れ子にしました<?php echo...なんて混乱したことでしょう。次のようにします。

<a href="<?php echo base_url('admin/categories/delete/'.$row['cat_id']; ?>">

モデル:

$cat_idモデルのdelete関数で定義していません。また、モデルから json を返さないでください。次のようにします。

function delete($cat_id = null)
{
    return $this->db->delete('ns_categories', array('cat_id' => $cat_id));
}

コントローラ:

delete変数には数値が含まれているため、意味のないメソッドとして呼び出して$cat_idいます-メソッドを呼び出すことができるオブジェクトではありません。また、json をエコー/印刷する必要があり、json ヘッダーを設定する必要があります。次のようにします。

function delete($cat_id = null) {
    $status = $this->cat_model->delete($cat_id);
    header('Content-type: application/json');
    echo json_encode(array("success" => $status));
}

POST メソッドを使用して削除する必要があります。そうしないと、誤って削除したり、次のような愚かなトリックを行ったりする可能性があります<img src="delete/item/1">

于 2013-06-08T18:26:11.340 に答える
0

コントローラーの削除機能で、モデルの削除機能を呼び出した後にカテゴリ ID を取得したのはなぜですか? そして、あなたが得ているところからあなたのモデル関数で$cat_id?? このようにする必要があります

function Category_delete(){
$cat_id=$this->uri->segment(3);   
if($this->cat_model->delete($cat_id)) return json_encode(array("success" => true));            
}

あなたのビューでは、<?php再び開いてanchorおり、関数で関数を使用してhref anchorいるため、完全な<a>タグが生成されますヘルパーのリファレンスを参照してくださいCIヘルパー

<td class="centeralign"><a class="deleterow" href="<?php echo site_url('admin/categories/Category_delete/'.$row['cat_id']; ?>">
<span class="icon-trash"></span></a></td>

また、delete はキーワードである可能性があるため、関数の名前を変更する必要があります。関数には通常の名前を使用してください。

于 2013-06-08T18:23:08.783 に答える