【问题标题】:Can't get data from ajax to controller, Error: Undefined index: dataId无法从 ajax 获取数据到控制器,错误:未定义索引:dataId
【发布时间】:2021-04-12 09:41:36
【问题描述】:

所以我在这里想要做的是,当我点击一个按钮(带有 id)时,它会根据它的 id 将我重定向到一个页面。但我的错误是 undefined index: dataId

这是ajax代码

$(document).ready(function(){

  $(".btn-clinic").click(function(){
    var dataId = $(this).data("id");
    var baseUrl = "<?php echo base_url(); ?>clinic/getId";
    
    alert("The data-id of clicked item is: " + dataId);

    $.ajax({
    type:'POST',
    url:baseUrl,
    dataType:'json',
    data:{'dataId': dataId},
    cache:false,

    success:function(data){
    }

    
  });

  });

这是我在控制器中的代码

  function getId(){


$id = $_POST['dataId'];
if(!empty($id)){
  echo 'not empty' + $id;
}
else{
  echo 'empty data id ';
}
}

但错误是undefined index

这是我的观点的代码

foreach($data as $row)
    {

      echo "<div class='card mb-4'>";
        echo "<div class='row g-0'>";
           echo "<div class='col-md-4'>";
               echo "<img src='...' alt='...'>
            </div>";
            echo "<div class='col-md-8'>";
              echo "<div class='card-body'>";
                   echo "<h5 class='card-title'>".$row->clinicname."</h5>";
                   echo "<p class='card-text'>".$row->clinicname."</p>";
                   echo "<p class='card-text'><small class='text-muted'>".$row->clinicaddress."</small></p>";
                   echo "<a id='clinic' href=";?><?php echo base_url(). "clinic";?> <?php echo "value=".$row->clinicid." class='btn-clinic d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm' data-id=".$row->clinicid."><i class='fas fa-download fa-sm text-white-50'></i> See more</a>";
                echo "</div>
            </div>
        </div>
    </div>";
    
    }

【问题讨论】:

  • href 应该是 "#" 否则它将重定向到其他页面。
  • 是的,这就是我想要做的,我有一个名为 Clinic.php 的文件,我可以根据被点击的按钮的 id 值从模型中获取数据。这可能吗?

标签: php ajax codeigniter


【解决方案1】:

如果您使用的是版本大于或等于 1.5 的 jquery 版本,则必须以这种方式将“type”替换为“method”。

$.ajax({
    method: 'POST',
    URL: baseUrl,
    dataType: 'json',
    data: {'dataId': dataId},
    cache: false,
    success:function(data){
    }
});

【讨论】:

  • 我正在使用 jquery-3.4.1。与类型。文档说:"Type: 方法的别名。如果您使用的是 1.9.0 之前的 jQuery 版本,则应该使用 type。" 它没有说你必须用方法替换类型!
猜你喜欢
  • 2018-06-05
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多