我寫了以下網站,它使用了一個非常簡單的表單,並將該數據發送到mysql數據庫。我的問題是JavaScript/AJAX形式ID =「聯繫形式」腳本似乎與形式的行動來干擾=「insert.php」HTML表單不會執行正確的操作,干擾
這裏是我的基本的html:
<form action="insert.php" method="post" id="contactForm" role="form" data-toggle="validator" class="shake">
<div class="row">
<div class="form-group down col-sm-6">
<label for="name" class="h4">Voor en achternaam.</label>
<input name="naam" type="text" class="form-control" id="name" placeholder="Voornaam Achternaam" required data-error="Vergeet deze niet!">
<div class="help-block with-errors"></div>
</div>
</div>
<button value="Submit" style="background-color: #75963c;" type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button>
<div id="msgSubmit" class="h3 text-center hidden"></div>
<div class="clearfix"></div>
</form>
這裏是我的插件。 PHP把數據導入到mysql數據庫:
<?php
$con = mysql_connect("mydatabaseip","mydbuser","mydbpassword");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydbname", $con);
$sql="INSERT INTO nametable (naam) VALUES('$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
下面是發送電子郵件我的AJAX/JavaScript的:
$("#contactForm").validator().on("submit", function (event) {
if (event.isDefaultPrevented()) {
// handle the invalid form...
formError();
submitMSG(false, "Did you fill out everything correctly?");
} else {
// everything looks good!
event.preventDefault();
submitForm();
}
});
function submitForm(){
// Initiate Variables With Form Content
var name = $("#name").val();
$.ajax({
type: "POST",
url: "php/form-process.php",
data: "name=" + name,
success : function(text){
if (text == "success"){
formSuccess();
} else {
formError();
submitMSG(false,text);
}}});
}
function formSuccess(){
$("#contactForm")[0].reset();
submitMSG(true, "Message received!")
}
function formError(){
$("#contactForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
$(this).removeClass();
});
}
function submitMSG(valid, msg){
if(valid){
var msgClasses = "h3 text-center tada animated text-success";
} else {
var msgClasses = "h3 text-center text-danger";
}
$("#msgSubmit").removeClass().addClass(msgClasses).text(msg);
}
這裏是我的外形process.php:
<?php
$errorMSG = "";
// NAME
if (empty($_POST["name"])) {
$errorMSG = "Name is required ";
} else {
$name = $_POST["name"];
}
$EmailTo = "[email protected]";
$Subject = "form info.";
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From:".$name);
// redirect to success page
if ($success && $errorMSG == ""){
echo "success";
}else{
if($errorMSG == ""){
echo "Something went wrong :(";
} else {
echo $errorMSG;
}
}
?>
不知怎的,這兩個文件似乎與互相干擾。可能是因爲他們都對相同的元素 - 表單元素執行操作。我一直在努力工作,但無法弄清楚如何去做。如果我讓id =「contactForm」在那裏,它會執行,但action =「insert.php」不會。
所有幫助表示讚賞。
是啊......那不是工作要麼。我只想得到這個功能。 –
不工作在什麼意義上?也許我誤解了你的最終目標。 – ADyson
我想你明白這個主意,但現在電子郵件沒有發送。你能否看看你是否查看過所有的代碼?堆棧溢出會切斷其中的一部分。 –