【问题标题】:how to send two variable from onclick to controller (codeigniter)如何将两个变量从 onclick 发送到控制器(codeigniter)
【发布时间】:2017-02-21 03:44:42
【问题描述】:

向控制器发送两个变量时遇到问题:

这是我的删除按钮:

<a href="javascript:void(0);" class="btn btn-danger" data-name="<?php echo $data->opsi_color?>" data-id="<?php echo $data->id_opsi_color?>" onclick="hapus_warna(this)"><i class="glyphicon glyphicon-remove"></i></a>

这个javascript:

function hapus_warna(obj)
{
    var id = $(obj).attr('data-id');
    var name = $(obj).attr('data-name');

    if(confirm('Apa anda yakin ingin menghapus '+name+'?')) {
          // ajax delete data from database
          $.ajax({
            url : baseURL + "trueaccon2194/opsional/warna_dihapuskan/" +id +name,
            type: "GET",
            success: function(data) {
               location.reload();
            },
            error: function (jqXHR, textStatus, errorThrown) {
               alert('Error deleting data');
            }
        });
     }
}

我会将 var id 和 var name 发送给我管理的控制器 这是我的控制器:

function warna_dihapuskan($id,$name){
    $target = $this->input->get('data-name');
    $this->opsional_adm->warna_telah_dihapus($id);
    log_helper("warna", "menghapus warna ".$name."");
}

【问题讨论】:

    标签: javascript php html codeigniter


    【解决方案1】:

    不是这个

    $.ajax({
            url : baseURL + "trueaccon2194/opsional/warna_dihapuskan/" +id +name,
    

    你应该这样发送

    $.ajax({
            url : baseURL + "trueaccon2194/opsional/warna_dihapuskan/?data-id=" +id +'&data-name='+name,
    

    【讨论】:

    • 遇到 PHP 错误 严重性:通知消息:未定义变量:id 文件名:trueaccon2194/opsional.php 行号:55 回溯:文件:D:\xampp\htdocs\starsc\application\controllers\ trueaccon2194\opsional.php 行:55 功能:_error_handler 遇到 PHP 错误严重性:通知消息:未定义变量:名称文件名:trueaccon2194/opsional.php 行号:56 回溯:文件:D:\xampp\htdocs\starsc\application \controllers\trueaccon2194\opsional.php 行:56 功能:_error_handler
    • 你如何将 $id 和 $name 传递给 warna_dihapuskan($id,$name)?
    • 我认为通过在 javascript 中更早发送变量(+id + 名称)
    • warna_dihapuskan 是控制器功能吗?
    • 改为warna_dihapuskan() { $id = $this->input->get('data-id'); $name = $this->input->get('data-name'); }
    【解决方案2】:

    试试这个

    $.ajax({
            url : baseURL + "trueaccon2194/opsional/warna_dihapuskan/?id=" +id +"&name="+name,
    

    在你的控制器函数中检索这样的参数

    function warna_dihapuskan(){
        $name = $this->input->get('name');
     $id = $this->input->get('id');
    
    }
    

    【讨论】:

    • 欢迎您:D
    【解决方案3】:

    在你的 HTML 中写下这个

    <a href="javascript:void(0);" class="btn btn-danger" data-name="<?php echo $data->opsi_color?>" data-id="<?php echo $data->id_opsi_color?>" onclick="hapus_warna(<?php echo $data->id_opsi_color?>,<?php echo $data->opsi_color?>)"><i class="glyphicon glyphicon-remove"></i></a>
    

    在函数中

    function hapus_warna(id,name)
    {
    
    
        if(confirm('Apa anda yakin ingin menghapus '+name+'?')) {
              // ajax delete data from database
              $.ajax({
                url : baseURL + "trueaccon2194/opsional/warna_dihapuskan/" +id+"/" +name,
                type: "GET",
                success: function(data) {
                   location.reload();
                },
                error: function (jqXHR, textStatus, errorThrown) {
                   alert('Error deleting data');
                }
            });
         }
    }
    

    【讨论】:

      【解决方案4】:

      我真的很喜欢这样做

      method: 'POST'
      

      因为这样我就可以在 $ajax() 方法中执行此操作:

      data: {
      amount: id,
      name: name
      }
      

      我确实相信在这种情况下使用 POST 会更有趣 GET vs. POST ajax requests: When and how to use either?

      与其通过内联代码执行 onclick,不如将其与视图分开:

      $(".my_class").on('click', function(){
      ...
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 2014-02-11
        • 2020-01-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        相关资源
        最近更新 更多