2015-12-28 32 views
1

我有這個Ajax代碼,我從輸入字段獲取ID,我試圖通過刪除請求發送它。Ajax值無法達到刪除功能

$("#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,看看是否值達到的功能,但它只是呼應UNDEFINED。 爲什麼我的函數無法獲得值?

回答

1

您沒有將您的數據作爲鍵/值集發送。你只是傳遞了一個標量,這個標量可能被串成一個字符串。 PHP完全不知道名稱questionid。要解決這個問題,請使用一個對象作爲您的請求數據。

在你的JS,試試這個

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

,然後在$.ajax電話:

data: reqdata, 
+0

我試過了,還是數據不確定。 – Otonel

+0

但我確實得到在控制檯:請求URL:http://localhost/Codeigniter/index.php/admincontroller/getdatabasedata 請求方法:刪除 狀態代碼:200行 – Otonel

0

我不知道該爲「刪除」在Ajax調用的類型參數去做你想做的事。除非我錯過我的猜測,否則會期待「GET」,「POST」或「PUT」。 (參數'type'是'method'的別名。)

但是,您可以在ajax調用中嘗試此操作。

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

'DELETE'是一個有效的HTTP動詞,將工作作爲'type'的值。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html – CollinD

+0

我的歉意,我沒有意識到這一點。 –

0

嘗試

data: {questionid: questionid}, 

在Ajax請求