gpt4 book ai didi

php - 使用 .Post() 将 JQuery 变量传递给 PHP

转载 作者:行者123 更新时间:2023-11-29 00:54:33 28 4
gpt4 key购买 nike

我正在尝试使用 JQuery 创建一个电子邮件订阅输入框,但由于某种原因,输入的电子邮件地址没有插入到 MySql 数据库中,谁能帮我?

这是我的 newsletter.js 文件中的代码:

jQuery(function($){

var validateRegexps = {
email: /^[a-zA-Z0-9._-]+@[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.php 文件中的代码:

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="youremail@yourdomain.com" data-subscribed="Thank you for subscribing.">

<form action="#" method="POST">
<input type="text" name="email" value="youremail@yourdomain.com" />
<input type="submit" value="submit" />
</form>
<h2>Sign Up to Our Newsletter!</h2>

</div>

非常感谢任何帮助。非常感谢您!!!

最佳答案

嗯!查看您的代码并没有直接指向任何错误,但最明显的问题似乎是在 INSERT 查询中,电子邮件地址未包含在单引号中。请像这样起草您的查询:

$subsql = "INSERT INTO subscribe(email) VALUES('" . $_POST['add'] . "');";

希望上面的 INSERT 可以正常工作。如果问题仍然存在,请尝试查明查询是否可能产生任何错误:

$subsql = "INSERT INTO subscribe(email) VALUES('" . $_POST['add'] . "');";
mysql_query($subsql);
if (mysql_error()) {
echo mysql_error();
}

如果没有发现错误并且问题仍然存在,则可能需要研究其他基础知识,例如:

  1. $_POST['add'] 在“newsletter.php”中可用吗?
  2. 是否在“newsletter.php”中正确建立了 MySQL 连接?
  3. 是否存在 POST 请求根本未发送或可能使用空电子邮件地址发送的任何 JavaScript 问题?

希望这对您有所帮助!

关于php - 使用 .Post() 将 JQuery 变量传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6727923/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com