Laravel dynamique de la liste déroulante de l'etat et du pays
Je suis en train de faire deux menus déroulants. Ce sont les pays et les états des sélections à partir de ma base de données. Mon problème est de ne pas savoir comment rendre les conditions que les états doivent être dépendants des pays. Lorsque je sélectionne [countryname] il donnera une sélection différente des états nom dans ma liste déroulante. Jusqu'à présent ici ce que j'ai fait jusqu'à présent.
AdminController.php
public function user_register()
{
$countryname = DB::table('countries')
->get();
$statename = DB::table('states')
->get();
$title = ucwords(Lang::get('constants.user') . ' ' . Lang::get('constants.register'));
return View::make('register.user_register')
->with('title', $title)
->with('page', 'user_register')
->with('countryname', $countryname)
->with('statename', $statename)
}
user_register.blade.php
<select class="form-control" id="countries" name="countries">
<option value="">Please select</option>
<?php foreach ($countryname as $key=>$countryname): ?>
<option value="<?php echo $countryname->sortname; ?>"<?php
if (isset($countries) && Input::old('countries') == $countryname->sortname)
{
echo 'selected="selected"';
}
?>>
<?php echo $countryname->sortname ." - ". $countryname->name ; ?>
</option>
<?php endforeach; ?>
</select>
<select class="form-control" id="states" name="states">
<option value="">Please select</option>
<?php foreach ($statename as $key=>$statename): ?>
<option value="<?php echo $countryname->name; ?>" <?php
if (isset($states) && Input::old('states') == $statename->name)
{
echo 'selected="selected"';
}
?>>
<?php echo $statename->name; ?></option>
<?php endforeach; ?>
</select>
Dans ma base de données
Table: pays
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| country_id| int(11) | NO | PRI | NULL | auto_increment |
| sortname | varchar(3) | NO | | NULL | |
| name | varchar(150) | NO | | NULL | |
| phonecode | int(11) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
Table: états
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| country_id | int(11) | NO | | NULL | |
+------------+------------------+------+-----+---------+----------------+
Vous souhaitez mettre à jour les états lorsque vous sélectionnez un pays (pour ne montrer que les états liés à ce pays)? Si oui, vous aurez besoin de javascript.
Cela doit être fait avec javascript. Passer le pays/état des données dans une variable, et de modifier l'état avec onChange() sur le pays sélectionnez.
Aussi, si vous êtes à l'aide de la lame, ne pas utiliser de
afficher uniquement les états liés à ce pays) Yes Sir, exactement, je tiens à le rendre dynamique déroulante (à changer). Pouvez-vous m'aider Sir sur comment vais-je faire le codage? 🙁 Qui est aussi le bon moyen de code au lieu de balises html comme: <?php if....
Oui, Monsieur @aynber, merci pour la réponse je vais avoir des problèmes comment vais-je faire le codage... 🙁 dans laravel
Cela doit être fait avec javascript. Passer le pays/état des données dans une variable, et de modifier l'état avec onChange() sur le pays sélectionnez.
Aussi, si vous êtes à l'aide de la lame, ne pas utiliser de
<?php if (...
, il suffit d'utiliser @if (...
. Voir la doc laravel.com/docs/5.4/bladeafficher uniquement les états liés à ce pays) Yes Sir, exactement, je tiens à le rendre dynamique déroulante (à changer). Pouvez-vous m'aider Sir sur comment vais-je faire le codage? 🙁 Qui est aussi le bon moyen de code au lieu de balises html comme: <?php if....
Oui, Monsieur @aynber, merci pour la réponse je vais avoir des problèmes comment vais-je faire le codage... 🙁 dans laravel
OriginalL'auteur Kevin Lebadesos | 2017-07-12
Vous devez vous connecter pour publier un commentaire.
Voici comment faire une dynamique déroulant dans Laravel:
Avertissement: je n'ai pas tester, mais ça devrait fonctionner. N'hésitez pas à commenter et je vais mettre à jour
app/Http/Controllers/HomeController.php
resources/views/home.blade.php
app/Country.php
app/State.php
routes/web.php
app/Http/Controllers/CountryController.php
S'il vous plaît laissez-moi savoir ce qui fonctionne et marque de la question comme résolu si c'est le cas 😉
Je vais essayer votre échantillon Monsieur, merci encore. 🙂
est-il plus court de la méthode dans retrieveing des données à partir de la base de données et de passer sur mes listes déroulantes? aime: $countryname = DB::table('pays')->get(); . Puis ajouter un peu de js codes pour le paramètre(onchange condition)?
OriginalL'auteur tompec
Je voudrais mettre à jour ce post, j'ai déjà résolu mon problème. Je veux juste partager cette solutions pour la communauté 🙂
J'ai juste ajouté quelques ajax de codes pour ce dans mon user_register.blade.php:
Qui j'ai spécifié l'endroit pour obtenir les données de base sur l'identification des pays et va passer à mon routes.php:
Dans mon routes.php:
Dernière, j'ai ajouté quelques codes dans mon AdminController.php quoi faire:
Cette méthode fonctionne pour moi. J'ai été en mesure maintenant de mettre à jour dynamiquement option de liste déroulante (unis) basée sur l'identification des Pays.
OriginalL'auteur Kevin Lebadesos