JS:
用于客户端验证email
字段
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"> </script>
<script type="text/javascript" src="src/js/validate.js"> </script>
<script type="text/javascript">
$.validator.setDefaults({
submitHandler: function() { alert("submitted!"); }
});
$().ready(function() {
// validate alphaRegister form on keyup and submit
$("#alphaRegister").validate({
rules: {
email: {
required: true,
email: true
}
},
messages: {
email: "*"
}
});
});
</script>
HTML 表格
<form id="alphaRegister" action="src/php/newSubscriber.php" method="post">
<input type="email" name="email" id="cemail" value="" class="required" />
<div style="float:right; margin:0 5px 2px 0;"><input type="submit" id="submit" name="submit" value="" /></div>
</form>
当我输入 validname@adomain.com 时,它只会显示 submitted!!
PHP 文件 处理 html 输入的文件
<?php
$host="localhost"; // Host name
$username="myuser"; // Mysql username
$username2="root"; #localhost
$password="mypass"; // Mysql password
$password2=""; #localhost
$db_name="mydbname"; // Database name
$tbl_name="mydbtblname"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username2", "$password2")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot connect to database");
/* Obliterate bad input */
$goodEmail = mysql_real_escape_string($_POST['email']);
$sql= "INSERT INTO alphaSubscribers (alphaSEmAddr) VALUES('$goodEmail')";
$result = mysql_query($sql);
if (!$result) {
die('Invalid Email, please retry.');
}
else {
header( 'Location: /index.php' ) ;
echo "<meta HTTP-EQUIV='REFRESH' content='0; url=/index.php'>";
}
?>
有人看到我哪里做错了吗?
最佳答案
您正在通过 GET
发送表单,但要测试 POST
参数。将您的表单标签更改为
<form id="alphaRegister" action="src/php/newSubscriber.php" method="post">
同时移除 javascript submitHandler
,否则表单可能根本无法提交:
$.validator.setDefaults({
submitHandler: function() { alert("submitted!"); } // <= remove that line
});
关于php - 为什么这不会向数据库提交值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056746/