【问题标题】:get row id of mysql database into onclick function and pass to function using codeigniter将mysql数据库的行ID放入onclick函数并使用codeigniter传递给函数
【发布时间】:2013-02-03 17:39:21
【问题描述】:

大家好,我是 CodeIgniter 框架的初学者,我正在制作一个我想从数据库中删除记录/行的应用程序。我在视图的每一行前面创建了删除按钮,为此我编写了一些代码,但它没有帮助。请帮我。

这是我的view

<td><?php echo anchor('dbcont/deleteinput', 'Delete', array('onclick'=>'deleteinput(\''. $row->member_id .'\');')); ?></td>

这是我的model

function deletedata($id)
{
     $this->db->delete('tbl_members', array('member_id' => $id));
}

这是我的controller

function deleteinput($id)
    {
            $this->load->helper('form');
            $this->load->helper('html');
            $this->load->model('user');
            $this->db->select('member_id');
            $id = $this->db->get('tbl_members');
            $this->user->deletedata($id);
            redirect('home');
    }

【问题讨论】:

  • 你是否完美地使用 $row->member_id 获取 row_id
  • @Venkat 是的,但它以字符串的形式出现。 .像 '25' 。 .我想要它像 25 。 .只是没有单引号
  • 你是从数据库中获取的......
  • 使用 intval($row->member_id) 将该字符串 id 转换为整数并传递给您的函数
  • @Venkat 嘿兄弟它不起作用..intval($row->member_id) 这不会将字符串转换为整数。 .任何其他想法。 .

标签: php mysql codeigniter phpmyadmin


【解决方案1】:

您在点击事件上调用了一个 javascript 函数...但您在发布的问题中没有任何函数..

 <td><?php echo anchor('dbcont/deleteinput', 'Delete', array('onclick'=>'deleteinput(\''. $row->member_id .'\');')); ?></td>

无论如何,我认为你不需要 javascript 函数,你可以将 id 作为 url 中的参数传递

试试这个,

 <td><?php echo anchor('dbcont/deleteinput/'.$row->member_id, 'Delete'); ?></td>

注意:dbcont 是控制器类名

更新

更新你的控制器...

function deleteinput($id)
{
        $this->load->helper('form');
        $this->load->helper('html');
        $this->load->model('user');
        $this->user->deletedata($id);
        redirect('home');
}

你不需要get()select 在你的控制器中的任何东西..这是模型代码......你已经在你的deletedata 函数中这样做了..

$this->db->delete() => 第一个参数是表名,第二个是where子句。您也可以使用 where() 或 or_where() 函数,而不是将数据传递给函数的第二个参数。

docs这里

【讨论】:

  • ok.. echo $id;exit;deleteinput($id) 函数的第一行.. 并检查您是否获得了 id..
  • 是的,我得到了 id。 .
  • 那么您的模型中有一些磨损...检查它...echo $this-&gt;db-&gt;last_query();exit;deletedata 函数内db-&gt;delete 并检查您在查询中得到的内容
  • 我在这篇文章中做到了thanx..一个小错误是' member_id, 'Delete') ; ?>'
【解决方案2】:

也试试这个...

<td><a href="javascript:delete_member(<?php echo $row->member_id  ?>) > Delete</a></td>

并在同一个视图文件中编写这样的 JavaScript 函数......

function delete_membet(member_id){
       window.location.href = "<?php echo ROOT_FOLDER ?>/controller_name/delete/" +member_id ;
 }

然后在控制器文件中编写如下函数......

public function delete($member_id)

 {

        $this->model_file->delete($member_id);

        redirect('home');

  }

在模型文件中写一个这样的函数............

   public function delete($member_id)

     {
         $query = "delete from members where member_id = $member_id";

            $res = $this->db->query($query);
      }

【讨论】:

  • 严重性:警告消息:缺少 Dbcont::deleteinput() 的参数 1 文件名:controllers/dbcont.php 行号:66
  • 第66行有什么
【解决方案3】:

试试这个:

<a href="javascript:void(0);" onclick="deleteinput(<?php echo $row->member_id;?>);">delete</a>

在你的 javascript 中使用它

<script type="text/javascript">
var url="<?php echo base_url();?>";

    function delete(id){ 
        if (confirm("Do you want to delete?"))
          window.location = url+"dbcont/deleteinput/"+id;
        else
          return false;
}
</script>

在控制器中

public function deleteinput($id){
     $this->load->model('user');
     $this->user->deletedata($id);
     redirect('home');

}

在模型中

function deletedata($id){
        $this->db->where('id', $id);
        if($this->db->delete('tbl_members'))
           return true;
        else
           return false;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多