J'ai une sélection multiple, dans laquelle je dois l'enregistrer dans l'ordre dans lequel je l'ai sélectionné. Le problème est que la commande est triée.

//This is my multiple select...

<select multiple="multiple" name="sequence[]">
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
</select>

//This is my code in saving it to the database...

foreach($request->sequence_array AS $key=>$value){
  $sequence = new Sequence();
  $sequence->sequence = $value;
  $sequence->save();
}

Lorsque je sélectionne C, A, B, j'en ai besoin pour enregistrer dans cet ordre, mais ce que j'obtiens à la place est A, B, C.

0
deen 4 nov. 2019 à 06:45

1 réponse

Vous ne pouvez pas vous attendre au résultat comme vous le souhaitez.

Si vous ne souhaitez pas modifier la logique de l'interface et conserver le formulaire actuel, tout ce que vous pouvez faire est d'ajouter du javascript dessus (vous pouvez utiliser jQuery ou tout autre outil de votre choix) et enregistrer l'ordre de l'activité de sélection de l'utilisateur dans un autre formulaire masqué champ.

Ensuite, en back-end, vous pouvez analyser l'activité des utilisateurs et prendre une décision concernant la commande. Dans votre cas, si vous voyez que l'utilisateur a simplement sélectionné C, A, puis B, il sera facile de créer la séquence. Cependant, si l'utilisateur sélectionne quelque chose plusieurs fois, ce sera un problème plus difficile

1
Anatoliy R 4 nov. 2019 à 03:53