0 レビュー
2 回答
php-ボタンがクリックされたときにAJAXが呼び出されませんか?
今、私のウェブサイトが開き、ユーザーは注文したいものを選択できます。彼らが注文を送信したいとき、私はただメールを送りたいのですが、メールが届かず、私のページが再開するだけです。
javascript / AJAX:
<script type="text/javascript">
$(document).ready(
function() {
$('#wholesaleOrderForm').submit(
function() {
if (validateForm()) {
$.post("wholesale_form.php",
$('#wholesaleOrderForm').serialize(),
function(response) {
alert('response = ' + response);
if (response == "success") {
$('#ajax-msg').html("Thanks for subscribing!");
$('#ajax-msg').style.color = "green";
$('#ajax-msg').hide(5000);
} else {
$('#ajax-msg').html("Sorry, there is some error. Please try again.");
$('#ajax-msg').style.color = "red";
$('#ajax-msg').hide(5000);
}
}
);
// prevent postback
return false;
} else {
return false;
}
}
);
}
);
</script>
PHPコード:
<?php
$to = "[email protected]";
$subject = 'hello';
$message = "Hello!!";
$headers = 'From: [email protected]_EMAIL.com';
mail($to, $subject, $message, $headers);
?>
わからない
0
レビュー
答え :
解決策:
ジュレインの提案に加えて、次の2行を変更します。
$('#wholesaleOrderForm').submit(
function() {
これへ:
$('#wholesaleOrderForm').submit(
function(e) {
e.preventDefault();
//rest of your code
説明:
フォームは別のページに移動して送信されます(通常はフォームタグの action="newpage.php"
属性で指定されます。AJAXコードは、ページが移動する前に完了する時間がありません。* action=
属性が指定されていない場合、ページが更新されるだけであることに注意してください。これはAJAXでも同じ問題です。
それがうまくいかない場合のさらなる提案:
(1)分割統治。動作するまでコードを大幅に減らしてから、残りを徐々に追加して、エラーが見つかったら修正します。
(2)ajaxを最小限に減らします:
$('#wholesaleOrderForm').submit(function(e) {
e.preventDefault();
$.post("wholesale_form.php", function(response) {
alert(response);
});
});
Wholesale_form.php
<?php
echo 'Ajax is working';
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。