2010-07-15 7 views
0

J'ai une sorte de panneau d'administration où je veux pouvoir changer l'état des commandes des clients en direct sans actualiser ou changer de page. J'ai compris que je devais utiliser Javascript, AJAX ou jQuery pour cela mais comme je n'ai aucune expérience pour ça et que je n'ai pas le temps d'apprendre tout ça je vous demande de l'aide pour cela.Mise à jour automatique de la ligne MySQL au changement

Mon code:

<form> 
    <select name="status"> 
     <option value="0">Ej verifierad</option> 
     <option value="1">Väntar på betalning</option> 
     <option value="2">Postas ASAP</option> 
     <option value="3">POSTAD!</option> 
     <option value="4">Annulerad</option> 
    </select> 
</form> 

L'état de la commande est conservé dans une base de données MySQL.

S'il vous plaît noter que j'aurai beaucoup de formulaires à une page et je veux seulement la mise à jour celle qui est changen mais directement quand je la change.

Merci d'avance pour les réponses.

Répondre

3

utilisez jQuery à coup sûr. C'est la façon la plus simple de faire des appels AJAX ... qui sont faits en JavaScript. Donc, je suppose que la meilleure réponse est, vous aurez besoin de tous les trois!

ont une page PHP accepte les paramètres POST, et au lieu de soumettre votre formulaire avec action="myFormResponder.php" et method="post", laissez les intactes, et mettre ce en haut de votre page Web (avant la balise de fermeture </head>):

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#myForm').submit(function(){ 
      $.post("myFormResponder.php",$('#myForm').serialize(), function(data, textStatus, xhr){ 
       // Do whatever you need here to update your page when the AJAX call finishes 
      }); 
      return false; // Cancel default submit action 
     }); 
    }); 
</script> 

Voir aussi: jQuery Documentation: $.post(). Cela vous aidera à comprendre comment utiliser les données transmises au rappel.

J'ai fondamentalement remplacé l'événement onsubmit par mon propre gestionnaire d'événements. Si vous vouliez répondre chaque fois que le contrôle de sélection a été modifiée, au lieu simplement attacher le gestionnaire à l'événement change() comme ceci:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     // NOTE CHANGE IN NEXT TWO LINES 
     $('select').change(function(){ 
      $.post("myFormResponder.php",{status: $(this).val()}, function(data, textStatus, xhr){ 
       // Again, do what ya gotta do, if ya gotta do it 
      }); 
      return false; // Cancel default submit action 
     }); 
    }); 
</script> 
+0

Est-ce que ce travail si j'ai beaucoup de formes à une page? –

+1

jQuery est extrêmement flexible, vous pouvez soit traiter tous les formulaires sur la même page ou gérer des formulaires spécifiques par ID si vous le souhaitez, ou même une combinaison des deux ... si vous le souhaitez, je peux travailler avec vous en tête-à-tête plus en détail si vous m'envoyez vos détails. Je vérifie fréquemment aevins à gmail dot com. Je suppose que la réponse courte à votre question est oui, cela fonctionnera, mais nous devrons modifier le code JavaScript pour l'adapter à votre script PHP et à votre structure DOM. – virstulte

Questions connexes