ここでインターネット/その他の質問で見つけた解決策を試した後、私のコードで問題を見つけることができません。私が必要とするのは、自分のビュー内のボタンをクリックすると、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呼び出しの結果を確認します。おそらくあなたは '$ id'パラメタを定義していますが、あなたは' POST'メソッドでそれを送信しています。したがって、ajaxのURLを変更して 'id'を追加するか、関数宣言から' $ id'を削除し、 'POST'で' $ id'を取得します。 – Yupik