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

时间:2015-01-02 02:55:23

标签: javascript html codeigniter

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

我在调用JS方法的代码中的Html代码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代码

我仔细检查了所使用的网址,并且可以访问。

<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');

    }

2 个答案:

答案 0 :(得分:0)

几个选项:

- 确保onclick事件正常,在ajax调用之前添加警报(&#34; test&#34;)以确保你到达那里

- 在你的控制器上,尝试echo&#34; test&#34;确保你收到回复

- 使用Chrome控制台调试您的ajax调用并确保其进入控制器

答案 1 :(得分:0)

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>