私はajaxコールに問題があります。実際に私はPHP(cakephpフレームワーク)でウェブサイトをプログラミングしています。ポップアップが表示されたら、ユーザーは「はい」または「いいえ」のいずれかのボタンを選択しなければなりません。しかし、なぜ動作しないのか分かりません。cakephpのAjaxコール
は、ここに私のコードです:ビュー(suivis.ctp)
<title>jQuery UI Dialog - Modal confirmation</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
// yes = 1, no = 0
function recordClick(val) {
console.log('sending...');
// return ajax call, which returns a Promise object
return $.ajax({
url: 'controller/method',
method: 'POST',
data: {the_value: val},
complete: function() {
console.log('Data was sent!');
}
});
}
$("#dialog-confirm").dialog({
modal: true,
buttons: {
"Oui": function() {
recordClick(1).then(function() {
$(this).dialog("close");
});
},
"Non": function() {
recordClick(0).then(function() {
$(this).dialog("close");
});
}
}
});
});
</script>
<div id="dialog-confirm" title="Confirmation de paiement">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Avez vous effectué le paiement ? </p>
</div>
recordClickは(0)私はそれをポップアップ閉じることができないと私は理由を理解していない動作しません。また、私のURLは
、ここでは私のコントローラだ...多分間違っている:あなたは助けるためにAccountsController.php
public function suivis()
{
if ($this->request->is('ajax')) {
$value_to_save = $this->request->data['the_value'];
if ($value_to_save == 1) {
$this->redirect(array('controller'=>'Accounts','action'=>'commander'));
$this->Commande->addsave('yes');
} else {
$this->redirect(array('controller'=>'Accounts','action'=>'commander'));
$this->Commande->addsave('no');
}
}
ありがとうございました。
'url: 'controller/method'、 'これは現在のURLとの相対的なものです。つまり、コードが固定されておらず、なぜコードが機能しないのかがわかります。 – AD7six
そうだと思っていますが、いろいろなURLを試しましたが、どうすればURLを "構成"できますか?リクエストがAccountsController.phpファイル(suivis関数)に送信されなければならないことを知っていれば、デフォルトでは ''/ controller/method' 'が –
になります。それが動作する場合、リダイレクトを発行しています - 何もしません。正確に「うまくいかない」とはどういう意味ですか - コードが何を期待していますか? jsエラーのコンソールと開発者ツールのネットワークタブを見て、あなたのajaxリクエストが何をしているのかを見てください。 – AD7six