2010-11-25 4 views
0

Tout ce que je veux c'est que dans le script php 1 qui a le code .post javascript jquery lib. Je veux que le script PHP 1 envoie une soumission de formulaire au script php 2 qui prendrait ces valeurs et mettrait à jour la base de données. Ensuite, avec php script 2, je veux renvoyer une variable au script php 1 pour lui faire savoir que la mise à jour s'est bien passée ou non. Sur le script php 1 J'ai une variable appelée success Je lui assigne d'abord un zéro. Exécutez ensuite le code .post et attendez que la variable de succès lui soit affectée 1.Comment renvoyer des variables en utilisant jquery .post à partir d'un fichier php?

sur le script php 1 après le .post j'ai un commutateur avec 2 cas un si le succès est 1 puis j'ai une chaîne disant "base de données mise à jour en bons termes". J'ai alors un autre cas où le succès est 0 puis une chaîne dit "désolé la tentative a échoué s'il vous plaît essayez à nouveau".

Ces chaînes sont affectées à une variable appelée db_status. Donc j'ajoute ensuite db_status dans la div. Ce qui affiche ce message de chaîne.

Je sais comment je peux utiliser .post et obtenir le code html à partir du fichier php sur le rappel de .post. Je veux juste savoir comment je peux retourner les variables javascript ou php.

Répondre

1

Dans PHP, il suffit d'écrire une variable, c'est-à-dire echo $ testVariable; et la valeur de testVariable $ est 10, faites ceci dans votre jquery

$.ajax 
         ({ 
         type: "POST", 
         url: "order.php", 
         dataType: "json", 
         data: postData, 
         cache: false, 
         success: function(testVariable) 
          { 
           alert("Order Saved"); 
           $('#assigned_id').html(testVariable); 
          } 
         }); 

assigned_id a maintenant la valeur de 10 en elle!

-1

Comme vous l'avez dit, la façon de montrer le résultat d'un jQuery.post (...) est d'utiliser la construction dans le rappel. De cette façon, vous pouvez toujours "repasser ... les variables php". Rappelez-vous que le PHP ne peut jamais renvoyer directement les variables, il doit être rendu dans une page finie ou si vous choisissez une autre réponse, tapez une structure JSON, un document XML ou n'importe quel format adapté à vos besoins.

Si vous souhaitez retourner un bloc javascript alors je pense que vous pourriez faire quelque chose comme ceci:

$.ajax({ 
    type: "GET", 
    url: "myphp1.php", 
    dataType: "script" 
}); 

Mais vous pouvez aussi utiliser dataType "html":

docs jQuery:

Si html est spécifié, tout intégré JavaScript dans les données récupérées est exécutée avant le code HTML est renvoyé sous forme de chaîne. De même, le script exécutera le code JavaScript qui est extrait du serveur, , puis renverra le script lui-même sous forme de données textuelles .

1

Ce que vous devez faire est de trouver un moyen pour le script php 1 d'envoyer des données post via ajax.Vous pouvez le faire en faisant:

<?php 
    $variable = 0; 
?> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#input').ready(function(){ 
     $.post("phpscript2.php", {db_code: ""+ $(this).val() +""}, function(data){ 
          if(parseInt(data) == 1){ 
           $('.message').html('Database updated in good terms'); 
          } else { 
           $('.message').html('Sorry the attempt was a fail.'); 
          } 
     }); 
    }); 
});   
</script> 

<input type="hidden" value="<?php echo $variable; ?> 
<div class="message">Please wait while we process</div> 

Puis script PHP 2 vous auriez:

<?php 
    $variable = $_POST['db_code']; 

    // Do some code with the posted data that is valued to 0... 
    $new_variable = 1; 


    echo $new_variable; 
?> 

Ce soumettriez le champ de saisie caché quand il charge (charge php avant jquery champ si caché, aura la valeur de hte php variable). Il enverra la valeur du champ caché POST en utilisant $ .post comme vous le vouliez, et enverra au script php 2 la valeur de la variable dans le script php 1. Lequel vous traiterez alors les données postées vouloir le faire. Alors écho sur une nouvelle valeur de variables ou même peut juste écho 1, alors l'écho retournera à ajax et là nous analyserons les données rendues, qui est 1 mais il a été renvoyé en écho donc il est devenu une chaîne, et nous devons l'analyser dans un entier, vérifiez-le avec une instruction if else en disant si 1, faites ceci, sinon faites ceci, en définissant le message classed div avec les messages de succès ou d'échec. Ce qui est génial, c'est que l'entrée cachée ne peut pas être éditée car elle envoie le message de valeur, juste quand le navigateur se charge, ne donnant pas au client le temps d'éditer la valeur.

C'est la théorie de toute façon. Ce n'est pas testé, et je suis encore assez nouveau sur la scène ajax.

J'espère que j'ai aidé!

Questions connexes