Ajax值可以';无法达到删除功能


Ajax value can't reach delete function

我有一个Ajax代码,我从输入字段中获得一个ID,并试图通过删除请求发送它。

$("#removebutton").on("click", function() {
      var questionid = $('#questionid').val();
      $.ajax({
              url : '../admincontroller/getdatabasedata', 
              type: 'DELETE',
              data: questionid,
              success: function(response)
              {
                JSON.stringify(response);
                alert(response.ok);
              }
          });
    return false; 
  });

以下是发送请求的位置:

else if ($this->input->server('REQUEST_METHOD') == 'DELETE')
    {
        $id = $this->input->get('questionid');
        if($id != ''){
            $this->adminmodel->deleteQuestion($id);
            echo json_encode(array('ok' => $id));
        }
        else{
            echo json_encode(array('ok' => $id));
        }   
    }

我正在尝试echo $id查看该值是否达到函数,但它仅echo UNDEFINED。为什么我的函数不能接收值?

您没有将数据作为键/值集发送。你只是在传递一个标量,它可能被插入为字符串。PHP完全不知道名称questionid。要解决此问题,请使用一个对象作为请求数据。

在你的JS中,试试这个

var reqdata = {questionid: $('#questionid').val() }

然后在你的$.ajax通话中:

data: reqdata,

我不确定在ajax调用的类型参数中使用"DELETE"是否能达到您想要的效果。除非我猜错了,否则它应该是"GET"、"POST"或"PUT"。(参数"type"是"method"的别名。)

但是,您可以在ajax调用中尝试此操作。

$.ajax({
    url: '../admincontroller/getdatabasedata',
    type: 'POST',
    data: {
        request: 'DELETE',
        questionId: questionId
    },
    success: function(response) {
        ....
    }
}

尝试

data: {questionid: questionid},

在ajax请求中