J'ai une fonction jquery-ajax qui envoie des données à un script php et le problème est avec la valeur de retour, il retourne la page entière au lieu d'une seule valeur.
Merci pour votre temps et votre aide.
$("#ajaxBtn").click(function(){
var inputText = $("#testText").val();
$.ajax({ type: "POST",
url: "index.php",
data: "testAjax="+inputText,
dataType: "html",
success: function(html){
alert(html);
}
});
});
Voilà comment ça fonctionne. Vous demandez index.php
via AJAX, vous obtiendrez donc le contenu de index.php
sont.
Si vous voulez une valeur particulière, créez une nouvelle page PHP qui ne produit que cette valeur, et demandez plutôt le contenu de cette URL.
Donc, quand vous avez ceci sur votre index.php
Au début?:
<?php
if (isset($_POST["testAjax"])) {
echo $_POST["testAjax"];
}
?>
Si ce script génère un texte supplémentaire, cela sera bien sûr également reçu par l'appel Ajax. Vous pouvez mettre exit()
après l'écho pour empêcher le traitement du script:
if (isset($_POST["testAjax"])) {
echo $_POST["testAjax"];
exit();
}
Utilisez également dataType: 'text'
Car la valeur que vous renvoyez n'est évidemment pas HTML.
Ou, comme d'autres le suggèrent, créez une nouvelle page chargée de traiter la demande Ajax. Si vous faites plus que simplement sortir la valeur reçue (c'est-à-dire des opérations plus complexes), vous devez le faire de toute façon.
Sophia, Dans votre cas, vous ne devez pas envoyer vos données vers un fichier php qui, s'il est consulté par un navigateur Web, affiche une page de site Web. Vous devez envoyer vos informations dans un fichier php qui ne renvoie que les données que vous souhaitez voir renvoyées.
Donc, au lieu de "index.php", créez un fichier appelé quelque chose comme "my-ajax-script.php". Ce fichier doit inclure tous les fichiers "include ()" nécessaires pour se connecter à la base de données et à vos fichiers de fonction php (c'est-à-dire: pour nettoyer les données POST). Ensuite, le fichier doit avoir le code qui traite les données POST, et l'écho des données complètes avec quelques balises html. Ces données seront insérées dans votre DOM existant (balisage html).
Dans mon cas, toute personne ayant le même problème essaie d'utiliser
require_once
au lieu de require
dans votre fichier bootstrap php pour empêcher le rendu d'une page entière une deuxième fois dans le système.