在嘗試了一些可能的解決方案後,我通過互聯網/其他問題在這裏找到了解決方法,但似乎無法找到與我的代碼相關的問題。我需要的是,在我的視圖中點擊按鈕後,我的Yii2控制器中的一個動作通過Ajax調用並執行一些操作。然而,用我目前的代碼,點擊按鈕後似乎沒有任何事情發生。使用Ajax在按鈕上調用Yii2功能點擊
相關的代碼如下...
的觀點:
(...)
Html::button('Eliminar', ['data-confirm' => '¿Eliminar enunciado?', 'onclick' => '
$.ajax({
type: "POST",
url: "/evaluacion/eliminar-enunciado",
data: {
id: '.$enunciado->id.'
}, success: function(result) {
if(result == 1) {
$.pjax.reload({container: "#construccion-evaluacion"});
} else {
}
}, error: function(result) {
console.log(\"server error\");
}
});
'])
(...)
控制器:
(...)
public function actionEliminarEnunciado($id)
{
Enunciado::findOne($id)->delete();
if(Enunciado::findOne($id) != null) {
echo 1;
} else {
echo 0;
}
}
(...)
澄清一些注意事項:
- 控制器文件名爲EvaluacionController.php。
- $ enunciado-> id變量被正確定義並且具有有效值。
任何意見將不勝感激。謝謝你的時間!
如果您正在使用Chrome瀏覽器 - 請按F12,指向網絡標籤並查看您的ajax調用的結果。顯然它的'400 - 錯誤的請求',因爲在行動中你定義了參數'$ id',但是你通過'POST'方法發送它。因此,改變ajax的URL並添加'id',或者從函數聲明中移除'$ id',並通過'POST'獲取'$ id'。 – Yupik