错误 JS 将发布数据发送到控制器 -CodeIgniter

Error JS send post data to controller -CodeIgniter

本文关键字:数据 控制器 -CodeIgniter JS 布数据 错误      更新时间:2023-09-26

我正在开发一个基于CodeIgniter的Web应用程序。我是javascript和JS开发的新手。我正在发送位于控件 r(主页/问题视图)中的post data to a method。我发送到控制器的数据不会发布到控制器。附上您可以看到我正在使用的代码。我所做的每一次尝试都会触发 AJAX error函数。

代码中的 html 代码我称之为 JS 方法,称为 viewQuestion(id)

<div class="col-md-7 column list-group">
        <a href=""  id="list" class="list-group-item active" onclick="viewQuestion(<?php echo $question['questionid']; ?>)">
                                    <h4 class="list-group-item-heading"><?php echo $question['questionid'];echo". "; echo $question['questionTitle']; ?></h4>
                                    <p class="list-group-item-text"><?php echo "Vote Count :"; echo $question['votecount']; ?></p>
                                    <p class="list-group-item-text"><?php echo "Asked user :"; echo $question['username']; ?></p>
                                </a>
                            </div>

我的 JS 代码

我仔细检查了使用的URL,它是可访问的。

<script type="text/javascript">
function viewQuestion(id)
{
   $.ajax({
        url: '<?php echo base_url(); ?>homepage/questionview',
        type: 'POST',
        data: { listid: id },
        success: function () {
            alert('suc');
        },
        error: function (error) {
           // alert('error');
            console.log(error);
        }
    });

}

</script>

主页/问题视图(控制器)

public function questionview()
    {
       //echo $listid;
      echo $this->input->post('listid');
    }

几个选项:

- 确保 OnClick 事件正常工作,在 Ajax 调用之前添加一个警报("测试"),以确保您到达那里

- 在您的控制器上,尝试回显"测试"以确保您得到响应

- 使用 Chrome 控制台调试您的 ajax 调用并确保它到达控制器

return false;放在 ajax 代码段的末尾,看看。然后你的代码将是这样的。

<script type="text/javascript">
function viewQuestion(id)
{
   $.ajax({
        url: '<?php echo base_url(); ?>homepage/questionview',
        type: 'POST',
        data: { listid: id },
        success: function () {
            alert('suc');
        },
        error: function (error) {
           // alert('error');
            console.log(error);
        }
    });
return false;
}

</script>