Pour un simple transfert de données de PHP vers AJAX, l'encodage Json ou les paires clé-valeur ne sont pas toujours nécessaires. Il est possible de le faire simplement en utilisant la manipulation des chaînes de caractères.
Un exemple de code expliquant cette fonctionnalité est présenté ci-dessous.
$query = "SELECT email FROM login WHERE email = '". mysqli\_real\_escape\_string($conn,$email) ."' AND password = '". mysqli\_real\_escape\_string($conn,$pass) ."'" ;
$result = mysqli\_query($conn,$query);
$row=mysqli\_fetch\_row($result);
$row\_cnt = mysqli\_num\_rows($result);
$s\_email = $row\[0\];
if ($row\_cnt == 1) {
$response="success";
} else {
$response = "Invalid Credentials";
}
$conn->close();
$\_SESSION\["email"\]= $s\_email;
echo $response;
Ce code montre comment une réponse de "succès" est renvoyée à ajax en appelant le code php. Plus loin dans ajax, ce qui suit pourrait être fait pour récupérer la réponse.
$.ajax({ type : 'POST',
data : {email: $('#email').val(), password: $('#pass').val()},
url : 'login.php',
success: function (data) {
if(data == 'success'){ //the value echoed from php can be stored in the data variable of ajax
window.location.assign('upload.php');
}
else{
alert(data);
}
},
error: function ( xhr ) {
alert("error");
}
});
Le concept ci-dessus peut être étendu pour renvoyer également des VALEURS MULTIPLES. Cette méthode permet un transfert simple des données de PHP à AJAX dans un format de chaîne.
Nous devons suivre une étape simple consistant à faire écho à tout ce que nous devons envoyer comme réponse du php à l'ajax, en le séparant par un séparateur unique.
echo $response.#;
echo $email.#;
echo $password.#;
echo "Hello".#;
echo "World";
Ensuite, les données variables dans ajax pourraient être simplement récupérées comme dans l'exemple ci-dessus et une simple fonction comme,
var res = data.split("#");
données, étant la variable dans ajax. Le tableau res peut alors être utilisé dans js pour n'importe quel but que nous avons besoin.