表单数据通过Ajax获取并发布到PHP脚本以输入到DB中
这可能很简单,但我真的有点不知所措。基本上,我有一个表单,只有一个输入:电子邮件和一个提交按钮。这不是我做的,所以我对它了解很少。我试图查找.ajaxjquery命令,但仍然没有意义 基本上,这里是我在index.php上的内容 JS和HTML:表单数据通过Ajax获取并发布到PHP脚本以输入到DB中,php,ajax,forms,post,Php,Ajax,Forms,Post,这可能很简单,但我真的有点不知所措。基本上,我有一个表单,只有一个输入:电子邮件和一个提交按钮。这不是我做的,所以我对它了解很少。我试图查找.ajaxjquery命令,但仍然没有意义 基本上,这里是我在index.php上的内容 JS和HTML: <!-- Subscription --> <script> $(function() { $('form input.submit').click(function (event) {
<!-- Subscription -->
<script>
$(function() {
$('form input.submit').click(function (event) {
event.preventDefault();
event.returnValue = false;
$.ajax({
type: 'POST',
url: 'subscribe.php',
data: {email: $('form input[type=email]').val()},
success: function(data) {
if (data == 'successful') {
$('#subscribe_status').html('Thanks for subscribing! We will let you know.').slideDown();
} else if (data == 'already_subscribed') {
$('#subscribe_status').html('This email is already subscribed.').slideDown();
} else if (data == 'invalid_email') {
$('#subscribe_status').html('This email is invalid.').slideDown();
} else {
$('#subscribe_status').html('Something went wrong. Please try again.').slideDown();
}
},
error: function () {
$('#subscribe_status').html('Subscription is not available.').slideDown();
}
});
});
});
</script>
<form action="#">
<input type="email" value="Your e-mail address..." onfocus="value=''" />
<input type="submit" class="submit" value="Notify me" />
</form>
基本上,我只是不断得到“出错,请再试一次。”
Subscribe.php
不返回任何内容,因此JS中的数据总是emtpy,因此总是执行最后一个命令。在Subscribe.php中写下:“var_dump($\u POST);”并查看成功函数中的结果,数据
参数将是您的PHP文件所显示的任何内容。因此,如果您在成功的数据输入上没有任何回音(看起来可能正在发生),那么JavaScript会认为出了问题。你能确认数据确实被输入数据库吗?不,数据没有进入数据库。我应该让“回声”成功吗作为我的php的最后一行?编辑:这不起作用。然后下一步就是为$ip
假设一些伪值,并手动执行SQL查询。当您这样做时,会收到什么错误消息?您应该真正附加一个调试器并查看您得到的响应。在Chrome中运行它并点击F12。转到“网络”选项卡,查看服务器告诉您的信息。(旁注:我希望这只是测试/示例代码,因为它容易受到…很多攻击。)
include 'go.php';
$email = $_POST['email'];
$ip=$_SERVER['REMOTE_ADDR'];
$timestamp = date("m/d/y H:i A");
mysql_query("INSERT INTO subscribers (ip, email, timestamp) VALUES (INET_ATON('$ip'), '$email', '$timestamp') ") or die(mysql_error());