Ce qui suit est dans la tête de mon fichier html, dans les balises de script:Comment appeler une fonction PHP en utilisant JQuery/AJAX
$(document).ready(function(){
$("#Submit").click(function(){
var name = $("#name").val();
$.ajax({
url : "function.php",
type : "POST",
data : {"firstname":name},
success : function(n){
//more code here }
});
});
}
Ceci est le formulaire HTML:
<div class="myForm">
<input name="name" id="name" value="name" onfocus="if (this.value == 'Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Name';}" type="text" />
<input type="button" value="Submit" id="Submit">
</div>
Voici mon PHP, enregistré dans un fichier appelé function.php:
<?php
$con=mysqli_connect("test", "", "", "test");
// Check connection
$name = $_POST['firstname'];
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO customers (name) VALUES (" + $name + ")");
mysqli_close($con);
?>
La fonction prend un âge pour appeler, et rien est enregistré dans ma base de données. Je suis nouveau à JQuery/Ajax. Quelles sont mes options de débogage ici? Quel est le problème susceptible d'être?
Vous publiez une variable nommée 'firstname' et récupérant une variable nommée' name'. Ils devraient correspondre. Vous pouvez aussi essayer 'mysqli_query (...) ou die (mysqli_error())' pour voir les erreurs mysql. – showdev
Mettez en forme vos données: 'data: {firstname: name},' – tymeJV
@showdev J'ai maintenant effectué cette modification. La fonction s'exécute beaucoup plus vite, mais il n'y a toujours pas de données dans ma table :( –