Ich habe ein einfaches Formular, und ich möchte die Daten in meiner Datenbank ohne Umleitung speichern. Ich benutze PHP, AJAX und JQuery für meine Seite. Ich weiß nicht, ob ich etwas falsch gemacht habe, aber nachdem ich den Submit-Button gedrückt habe, erscheinen die Formulardaten in der Adresszeile. Die Daten werden erfolgreich in der Datenbank gespeichert, aber die Seite wird ebenfalls neu geladen. Mein Code ist unten angegeben.Daten in der Datenbank ohne Umleitung in PHP speichern
HTML
<form>
<input type="text" placeholder="Full Name*" required pattern= "[a-zA-Z]+" title="Alphabets only" name="name" id="name">
<input type="email" placeholder="Email*" required pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$" name="email" id="email">
<input type="text" placeholder="Contact*" required pattern="[0-9]\d{9}" title="only 10 digit allowed" name="contact" id="contact">
<textarea placeholder="Enquiry(if any)" name="msg" id="msg"></textarea>
<button type="submit" name="register" id="register_btn">Register</button>
<span id="success"></span>
<span id="error"></span>
</form>
PHP
include("conn/connect.php");
if(isset($_POST['email'])){
$email= mysqli_real_escape_string($connect, $_POST['email']);
$name= mysqli_real_escape_string($connect, $_POST['name']);
$contact= mysqli_real_escape_string($connect, $_POST['contact']);
$msg= mysqli_real_escape_string($connect, $_POST['msg']);
$sql= "INSERT INTO registration(email, name, contact, msg, added_on) values('$email','$name','$contact','$msg', now())";
if(mysqli_query($connect, $sql))
{
echo '<h4>Registration Complete</h4>';
}
}
JAVASCRIPT
<script>
$(document).ready(function(){
$('#register_btn').click(function(){
var name = $('#name').val();
var email = $('#email').val();
var contact = $('#contact').val();
var msg = $('#msg').val();
if(name == '' || email == '' || contact == '')
{
$('#error').html("<h4>Mandatory field(s) are empty</h4>");
setTimeout(function(){
$('#error').fadeOut("Slow");
}, 3000);
}
else
{
$('#error').html('');
$.ajax({
url:"registration.php",
type:"POST",
data:{name:name, email:email, contact:contact, msg:msg},
success:function(data){
$("form").trigger("reset");
$('#success').fadeIn().html(data);
setTimeout(function(){
$('#success').fadeOut("Slow");
}, 3000);
}
});
}
});
});
</script>
Vielen Dank. Das hat das Problem gelöst. –
@ratulkeot kein Problem, froh zu helfen. –
Dann wird jedoch keine Formularvalidierung durchgeführt, wie es das bereitgestellte HTML-Markup vorschlägt. Es sollte sein: 'if ($ (this) .closest ('form') [0] .checkValidity()) event.preventDefault();' –