ajaxを使用して、ajaxを使用してコンタクトフォームをインラインでリフレッシュすることに成功しました。 mysqlに送信されるデータを扱うのに少し難しかったです。これまでのことは、ajaxを使ってリフレッシュすることは意図されていないので、いくつかの作業が必要なことに感謝します。ここに私が持っているものがあります...そしてどんな助けもありがとう。ajaxを使用してデータを送信してリフレッシュする
フォーム
<form name="email_list" action="">
<p><strong>Your Email Address:</strong><br/>
<input type="text" name="email" id="email" size="40">
<input type="hidden" name="sub" id="sub" value="sub">
<p><input type="submit" name="submit" value="Submit Form" class="email_submit"></p>
</form>
jQueryの
$(function() {
$('.email_submit').submit(function() {
var email = $("input#email").val();
if (name == "") {
$("input#email").focus();
return false;
}
var sub = $("input#sub").val();
if (name == "") {
$("input#sub").focus();
return false;
}
var dataString = $(this).serialize();
//alert (dataString);return false;
/*$.ajax({
type: "POST",
url: "mailing_list_add2.php",
data: dataString,
success: function() {
$('#display_block')
.hide()
.fadeIn(2500, function() {
$('#display_block');
});
}
});
return false;
});*/
});
PHP
<?php
// connects the database access information this file
include("mailing_list_include.php");
// the following code relates to mailing list signups only
if (($_POST) && ($_POST["action"] == "sub")) {
if ($_POST["email"] == "") {
header("Location: mailing_list_add.php");
exit;
} else {
// connect to database
doDB();
// filtering out anything that isn't an email address
if (filter_var(($_POST["email"]), FILTER_VALIDATE_EMAIL) == TRUE) {
echo '';
} else {
echo 'Invalid Email Address';
exit;
}
// check that the email is in the database
emailChecker($_POST["email"]);
// get number of results and do action
if (mysqli_num_rows($check_res) < 1) {
// free result
mysqli_free_result($check_res);
// cleans all input variables at once
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
// add record
$add_sql = "INSERT INTO subscribers (email) VALUES('$email')";
$add_res = mysqli_query($mysqli, $add_sql)
or die(mysqli_error($mysqli));
$display_block = "<p>Thanks for signing up!</p>";
// close connection to mysql
mysqli_close($mysqli);
} else {
// print failure message
$display_block = "You're email address - ".$_POST["email"]." - is already subscribed.";
}
}
}
?>
<html>
<?php echo "$display_block";?>
</html>
**変更:)あなたは、サーバーからデータを欠場
[OK]を、私は私が動作するように何か他のものを適応しようとしたと思うし、それが最善のアプローチではありません。ありがとう。 – Andy
迷惑なのは、私はPHPの部分が正常に動作しており、コードが動作しているということです。 JQueryとは別に、私はページを爽やかにすることができません。挫折。 – Andy
@Andyなぜあなたはajax呼び出し全体をコメントアウトし、フォームイベントハンドラから始めませんか?フォームが通常の方法で送信されるのを避けるには、フォームイベントハンドラからfalseを返す必要があることに注意してください。 – jeroen