晚上好。在HTML,CSS,JS,PHP等方面,我是一个完全的新手,因此我需要一些帮助,尤其是有关PHP和JQuery的帮助。
我正在尝试通过HTML表单提交简单的电子邮件。这是发生这种情况的HTML / JQuery代码段:
<form action="" id="emailform" name="emailform">
<input type="email" class="form-control" name="email_submit_field" id="email_submit_field" placeholder="type your email here">
<input id="email_submit_button" class="btn btn-default" role="button" type="submit" value="Submit"></input>
</form>
<script>
$("form").submit(function(event){
event.preventDefault();
$.post("email.php", $("#emailform").serialize());
});
</script>
从那里应该打开email.php
。上帝知道它是否在做正确的事,请让我知道。但是无论如何,一旦它进入email.php
,它的目标是将该电子邮件值发布到在localhost上运行的mySQL数据库中。这是我必须完成的PHP:
<?php
$dbname = "test";
$host = "localhost";
$usr = "root";
$pass = "password"; //obviously not, but you get the point
$email = $_POST["email_submit_field"];
$cxn = new mysqli($host, $usr, $pass, $dbname);
$query = "INSERT INTO emails VALUES('$email')";
mysqli_query($query);
mysqli_close();
?>
我所有这些的最大问题是,似乎每个教程都以不同的方式来完成此工作,但对我而言,这些都不起作用。长话短说,mySQL数据库从不接收数据,我也不知道为什么。非常感谢您提供的所有帮助,希望有人可以帮助我了解如何(以一种简单且一致的方式)通过PHP访问mySQL数据库。预先谢谢你。
您忘记了要插入值的哪一列(或表?)。
INSERT INTO emails (column_name) VALUES('$email')
还是应该
INSERT INTO table_name (emails) VALUES ('$email')
检查您的语法。当mysqli_*
像使用一样使用时mysql_*
,应$cxn
在执行查询时包括连接变量,该变量在给定的示例中。
mysqli_query($cxn, $query);
而且,至少*_real_escape_string
应使用该值清除值并防止某些SQL注入。
$email = mysqli_real_escape_string($cxn, $_POST["email_submit_field"]);
但是,如果使用mysqli prepareed语句会更好。您可以参考以下内容:
if($stmt = $cxn->prepare("INSERT INTO emails (column_name) VALUES (?)")){ /* CHECK IF THE QUERY IS TRUE */
$stmt->bind_param("s",$_POST["email_submit_field"]); /* BIND THE VARIABLE TO YOUR QUERY */
$stmt->execute(); /* EXECUTE THE QUERY */
$stmt->close();
}
而且对于您的脚本,您想提交表单而不刷新页面,对吗?然后,在这种情况下,您应该使用AJAX。
<script>
$(document).ready(function(){
$("#email_submit_button").click(function(e){ /* WHEN THE BUTTON IS CLICKED OR THE FORM IS SUBMITTED */
e.preventDefault(); /* STOP THE PAGE FROM REFRESHING */
var email = $("#email_submit_field").val(); /* STORE THE VALUE OF THE EMAIL FIELD */
var dataString = "email="+email; /* STORE THE EMAIL TO A DATA STRING */
$.ajax({ /* CALL AJAX */
type: "POST",
url: "email.php", /* SUBMIT THE DATA TO THIS PAGE */
data: dataString,
success: function(data){
$("#email_submit_field").val(""); /* EMPTY THE EMAIL FIELD */
}
});
return false;
});
});
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句