Bonsoir,
j'aimerai réaliser un sysèteme assez particulier mais je n'ai aucune idée de comment sa marche ou comment je peux m'y prendre j'ai fait plusieurs rechecrhe sur google mais hélas aucun résultat donc je m'en remet à vous, voici mon problème:

J'ai un champs (select) dans mon formulaire qui contient plusieurs langue et j'aimerai qu'on puisse selectionner plusieurs langue à la fois donc je sais pas comment sa marche niveau JS et niveau POST(PHP). Merci.

30 réponses


Chagry Rpc
Réponse acceptée
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();

google est ton ami comme a dit "antho07"

antho07
Réponse acceptée

Force la sérialisation :

var objectParams = {langue:langue};
var params = $.param(objectParams);
$.post('register',params,function(data){

});

Bonjour ça s'appele un select multiple.

En tapant select multiple javascript sur google... tu auras des milliers de liens qui répondent à ta question.

cordialement

Antho

MehdiWEB
Auteur

Pourquoi tu me dit ça, je t'ai dit que je n'avais pas trouvé sur google sa sert à rien de revenir dessus si tu n'a pas la réponse ne répond pas.

MehdiWEB
Auteur

Bonsoir j'ai réussi à faire la chose que je voulais faire, mais mon formulaire est soumis par jQuery ($.post) donc pour recup je fait sa:

$('#langue').val();

Ducoup quand je var_dump sa me met Array , c'est en forme de tableau.

C'est normal que ce soit sous forme de tableau, vu que tu as plusieurs données envoyées pour le même champ.
Il te suffit simplement de traiter le tableau du côté de PHP.

MehdiWEB
Auteur

Oui mais du côté de javascript sa ne l'envoie pas en tabelau, sa me retourne juste Array mais quand je var_dump sa me retourn 1

Tu transforme ton array en string!!!

'sa ne l'envoie pas en tabelau, sa me retourne juste Array' => qui retourne ça ? et où ?

MehdiWEB
Auteur

Le PHP retourne sa

Le tableau est vide tu veux dire?
Dans ce cas les données ne sont pas passées depuis le javascript...
Tu les as envoyées comment?

MehdiWEB
Auteur

Code HTML:

 <select id='langue' multiple='multiple'>
              <option value="francais">Français</option>
              <option value="anglais">Anglais</option>
              <option value="espagnol">Espagnol</option>
 </select>

Code JS:

var langue = $('#langue').val().length > 1 ? $('#langue').val() : ErrorRegister('langue');

Code PHP:

var_dump($langue);

sa retourne rien

?????

Comment tu fais passer l'information entre le contenu de ta variable js et ton debug php ???

en js Tu transforme ton array en string !!!

MehdiWEB
Auteur

@antho07 c'est une structure MVC sa passe par des fonction etc.. la variable langue existe belle bien et elle récupère le cotenue du select ne t'en fait pas
@Chagry Rpc comment?

MehdiWEB
Auteur

Je ne m'y connais pas en js, sa serai cool que t'adapte ton code pour mon cas.

t"es en ajax?
Le but est bien de récupérer les valeurs sélectionnées en js et les envoyées en ajax au serveur ??

MehdiWEB
Auteur

Le but est de récuperer les valeurs selectionné dans le select et des les afficher en PHP

Mais sans js alors???

MehdiWEB
Auteur

Si le formulaire est envoyé en JS

$('#langue').val().join();
MehdiWEB
Auteur

Quand je print_r($langue); sa me retourne 1, et quand je var_dump sa me retourne rien

var fruits = $('#langue').val();
var energy = fruits.join();

return energy to php.

MehdiWEB
Auteur

Toujours la même chose, rien ne change.

Comment est-il envoyé en js... c'etait ma question ...
via jquery ? avec un XMLHttpRequest construits à la main ?

MehdiWEB
Auteur
$.post('register',{langue:langue},function(data) { 
});
console.log(langue); // ça affiche quoi ici ?
$.post('register',{langue:langue},function(data) { 
});

Peux-tu aussi regarder dans le reseau si la requête part bien et si les données sont bien présentes (niveau formdata) ?

Si la console.log est ok mais que rien n'est retrouvé niveau php dans $_POST["langue"] , il faudra peut être forcer à la main le contentType à application/x-www-form-urlencoded

MehdiWEB
Auteur

J'ai sélectionner (francais et anglais) dans mon select et donc en console sa m'a afficher:
francais,anglais
Sa marche bien mais quand je print_r $langue sa affiche 1...

affiche $_POST