Obtenir la réponse du fichier PHP en utilisant AJAX
Voici donc mon problème, j'utilise AJAX (jQuery) pour poster un formulaire sur process.php
mais la page doit en fait faire écho à une réponse telle que apple
ou plum
. Je ne sais pas comment prendre la réponse de process.php
et l'avoir stockée en tant que variable...
Voici le code que j'ai jusqu'à présent:
<script type="text/javascript">
function returnwasset(){
alert('return sent');
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
success function(){
//echo what the server sent back...
}
});
}
</script>
Dois-je aussi faire écho à la réponse dans process.php
dans json? ou va en texte brut bien?
Désolé si cela ressemble à une question stupide, c'est la première fois que je fais quelque chose en tant que tel dans Ajax.
PS: Comment nommer la requête POST dans le code ci-dessus?
5 réponses
<?php echo 'apple'; ?>
est à peu près littéralement tout ce dont vous avez besoin sur le serveur.
En ce qui concerne le côté JS, la sortie du script côté serveur est passée en paramètre à la fonction de gestionnaire de succès, donc vous auriez
success: function(data) {
alert(data); // apple
}
La bonne pratique est d'utiliser comme ceci:
$.ajax({
type: "POST",
url: "/ajax/request.html",
data: {action: 'test'},
dataType:'JSON',
success: function(response){
console.log(response.blablabla);
// put on console what server sent back...
}
});
Et la partie php est:
<?php
if(isset($_POST['action']) && !empty($_POST['action'])) {
echo json_encode(array("blablabla"=>$variable));
}
?>
<script type="text/javascript">
function returnwasset(){
alert('return sent');
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
dataType:'text'; //or HTML, JSON, etc.
success: function(response){
alert(response);
//echo what the server sent back...
}
});
}
</script>
Dans votre fichier PHP, lorsque vous faites écho à vos données, utilisez json_encode ( http://php.net/manual/en/function.json-encode.php )
Par exemple
<?php
//plum or data...
$output = array("data","plum");
echo json_encode($output);
?>
Dans votre code javascript, lorsque votre ajax est terminé, les données de réponse codées json peuvent être transformées en un tableau js comme ceci:
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
success function(json_data){
var data_array = $.parseJSON(json_data);
//access your data like this:
var plum_or_whatever = data_array['output'];.
//continue from here...
}
});
var data="your data";//ex data="id="+id;
$.ajax({
method : "POST",
url : "file name", //url: "demo.php"
data : "data",
success : function(result){
//set result to div or target
//ex $("#divid).html(result)
}
});