PHP - mise à Jour des valeurs dans la liste déroulante lors de la saisie de l'utilisateur
J'ai eu 2 dans la liste déroulante dans mon formulaire php. Les valeurs dans la liste déroulante doit être récupérées à partir de la base de données(mysql). J'ai eu la première liste déroulante en cours d'exécution. Mais maintenant, j'ai besoin de mettre à jour le 2ème dans la liste déroulante lors de la sélection de l'utilisateur. La valeur affichée dans la 2ème liste pourrait différer en fonction de la sélection de l'utilisateur.
Comment puis-je mettre à jour les valeurs d'une autre dans la liste déroulante après que l'utilisateur a sélectionné une option dans la première liste déroulante? J'ai cherché et vu la même question sur la manière, mais ils ne sont pas répondues. L'espoir d'obtenir un peu d'aide ici. Merci. Ci-dessous mon code actuel que j'ai.
PS. Si je devais créer un formulaire html, j'aurais besoin pour exécuter le script php lors de la sortie, sans intrants pour remplir la première liste déroulante. Comment puis-je donc? Je ne suis au courant de comment envoyer la demande sur les intrants; E. g. <input type=submit>
.php
<?php
$conn = mysql_connect("127.0.0.1","root","")
mysql_select_db(MyApp,$conn);
$sql2=("SELECT App.AppName FROM App);
$result2=mysql_query($sql2);
echo '<select name="sublist">';
echo '<option value=""></option>';
while ($row2 = mysql_fetch_assoc($result2))
{
echo '<option value="' . $row2['AppName'] . '">' . $row2['AppName']. '</option>';
}
echo '</select>';
?>
- Vous ne pouvez pas le faire avec PHP seul. Vous aurez besoin de JavaScript.
- Cela dépend de comment vous voulez le faire. Si c'est juste avec l'aide de PHP, alors vous devez soumettre des données après le changement de la première sélection. Basé sur les données reçues, vous générez de la page avec la première sélectionnez avec déjà sélectionné l'option et la seconde avec les données demandées. Bien sûr, il pourrait être fait sans rafraîchissement de la page entière par le biais de l'iframe (où la deuxième sélection va être), mais le meilleur moyen est d'utiliser AJAX pour le transfert de données à partir de la première sélectionner et à obtenir le code html ou une structure pour la deuxième sélection, ce qui pourrait être inséré à la même page.
- Cela signifie que je dois faire un formulaire html? Alors, comment puis-je faire fonctionner ce script que j'ai à lancer le fichier html?
- Fait le code du travail pour vous? Si oui, de voter et d'accepter la réponse s'il vous plaît! =)
Vous devez vous connecter pour publier un commentaire.
Vous avez deux solutions pour cela.
Cependant à faire les choses de la bonne manière, vous avez besoin de support de Javascript
Donc, si je vous expliquer la solution. Une fois à l'utilisateur de changer votre première liste déroulante. Vous devez POSTER votre page à la même page à l'aide
onChange()
événement. Ensuite, dans votre page de définir les éléments de la deuxième liste déroulante même que vous avez fait pour la première liste déroulante.La deuxième solution nécessite AJAX. Une fois à l'utilisateur de changer la première liste déroulante vous faire une requête AJAX sur une page. Dans cette page vous attrapez la sélection de l'utilisateur. Et, vous générez de la deuxième liste déroulante sur cette base. Ici, vous pouvez utiliser trois méthodes pour obtenir la deuxième liste déroulante, ou de ses données.
un. Vous générez le toutes les options de cette page et l'envoyer en arrière. Définir le innerHTML de la deuxième liste déroulante.
b. Obtenir les données en JSON et de remplir votre déroulant sur cette base.
c. Obtenez de l'AJAX XML et de remplir votre déroulant sur cette base.
il n'y a plus d'une façon de le faire:
1) ont une demande envoyée au serveur avec la sélection de l'utilisateur, de récupérer le contenu de la seconde boîte de sélection et de l'afficher. Cela peut aussi être fait de deux façons
a) AJAX -- alors que la page n'est pas actualisée (lisse expérience de l'utilisateur)
b) actualisation de l'ensemble de la page -- (plus simple à mettre en œuvre)
2) charge toutes les combinaisons et puis lors de la sélection de l'utilisateur, montrez les déroulante. Ce n'est réalisable (en termes de ne pas générer de grandes pages) si vous avez de petits menus déroulants avec quelques combinaisons.
Comme l'a noté une autre affiche, toutes les méthodes ont besoin de JavaScript (dans une certaine mesure) à exécuter. Veuillez indiquer en détail l'approche qui est souhaitable et je vais aller plus en détail
L'affichage de la source à copier le code. JQuery a une façon de faire ce simple. J'ai utilisé un formulaire de créateur que j'ai faite sur mesure. Mais ici, c'est la sortie de la méthode manuelle.
Voici votre fichier ajax. Il va dans un JS ou l'en-tête.
Voici le fichier que l'utilisateur accède à:
Voici le fichier qui est appelé la requête ajax.