1
JQueryを使用して電子メールのサブスクリプション入力ボックスを作成しようとしていますが、何らかの理由で入力した電子メールアドレスがMySqlデータベースに挿入されません。すべてのヘルプは大歓迎です.Post()を使用してPHPにJQuery変数を渡す
require("config.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
$subsql = "INSERT INTO subscribe(email) VALUES(".$_POST['add'].");";
mysql_query($subsql);
And here is the code in my other php page to display the input box:
<div id="newsletter" data-default="[email protected]" data-subscribed="Thank you for subscribing.">
<form action="#" method="POST">
<input type="text" name="email" value="[email protected]" />
<input type="submit" value="submit" />
</form>
<h2>Sign Up to Our Newsletter!</h2>
</div>
:ここに私のnewsletter.phpファイル内のコードがある
jQuery(function($){
var validateRegexps = {
email: /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/,
"default": /.{4}/
}
if ($("#newsletter form").length == 0) return
var defaultMessage = $("#newsletter").attr("data-default")
var subscribedMessage = $("#newsletter").attr("data-subscribed")
var newsletterForm = $("#newsletter form")
/* newsletter code */
function newsletter(send) {
var subscribe = true
newsletterForm.find('input[type="submit"]').val(subscribe ? "Sign Up" : "Unsubscribe")
var email = newsletterForm.find('input[name="email"]')
var check = true
if (email.val() == defaultMessage || email.val() == subscribedMessage) {
email.val("")
if (!send) check = false
}
if (check) {
if(validateRegexps["email"].test(email.val())) {
// valid mail
email.removeClass("error")
if (send) {
$.post("php/newsletter.php",{add: email.val()}, function(data) {
email.val(subscribedMessage)
});
email.val("sending")
}
} else {
// invalid mail
email.addClass("error")
}
}
return false
}
function restore(e) {
var jqEl = $(e.currentTarget)
if (jqEl.val() == "") {
jqEl.val(defaultMessage)
}
return true
}
function signUp() {
return newsletter(false)
}
function signUpAndSend() {
return newsletter(true)
}
newsletterForm.find('input[name="email"]').focus(signUp).focusout(restore)
newsletterForm.change(signUp)
newsletterForm.submit(signUpAndSend)
});
:ここ
は私newsletter.jsファイルを持っているコードです。事前にどうもありがとうございました!!!
$ _POST ['add']には何を手に入れていますか? Btwの場合、変数をバインドしない場合は、データベースに挿入する前に入力をサニタイズする必要があります:$ add = mysql_real_escape_string($ _ POST ['add']); – kinakuta