Passer les valeurs des checkbox par GET [Résolu]

Signaler
Messages postés
5
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour,

j'ai un petit problème qui me fatigue trop,
voila j'ai un formulaire ou il y'a des checkbox
pour sélectionnez les matières :
Arabe :   
Francais :   
Anglais :   
Sciences :   
Physique :   


Mat :   
Sociologie :   
Philosophie :   
Traduction :   
Sport :


le formulaire retourne dans le OnSubmit la fonction AjouterProf() :


function AjouterProf()
{
var nom; var prenom; var email; var tel; var adresse; var pass;
nom = document.FormAjouterProf.nom.value;
prenom = document.FormAjouterProf.prenom.value;
email = document.FormAjouterProf.email.value;
tel = document.FormAjouterProf.tel.value;
adresse = document.FormAjouterProf.adresse.value;
pass = document.FormAjouterProf.pass.value;
var matiere = new Array();
matiere = document.FormAjouterProf.matiere;
var niveau = new Array();
niveau = document.FormAjouterProf.niveau;
if(texte = file('ADMINISTRATION/js/ajouter-prof-mysql.php?nom='+nom+'&prenom='+prenom+'&email='+email+'&tel='+tel+'&adresse='+adresse+'&pass='+pass+'&matiere='+matiere+'&niveau='+niveau));
{
if(texte == 1)
{
writediv(' '+nom+' a bien ete ajouter a la liste des professeurs
');
return(false)
}
else if(texte == 2)
{
writediv(' Erreur ');
return(false)
}
else
writediv(texte);
}
}

j'envoie les deux tableau matiere et niveau
par GET au fichier php ajouter-prof-mysql.php :


mysql_connect("localhost", "root", "") or die ('Erreur : '.mysql_error() );
mysql_select_db("ecole") or die ('Erreur :'.mysql_error());

$nom = strip_tags($_GET['nom']);
$prenom = strip_tags($_GET['prenom']);
$email = strip_tags($_GET['email']);
$tel = strip_tags($_GET['tel']);
$adresse = strip_tags($_GET['adresse']);
$pass = md5( $_GET['pass']);
$matiere = $_GET['matiere'][0];
for($i=1; $i<10; $i++)
{
if ($_GET['matiere'][$i] != '')
{
$matiere .= ', '.$_GET['matiere'][$i];
}
}


$niveau = $_GET['niveau'][0];

for($i=1; $i<4; $i++)
{
if ($_GET['niveau'][$i] != '')
{
$niveau .= ', '.$_GET['niveau'][$i];
}
}

$result = mysql_query('INSERT INTO professeur VALUES("", "'.$nom.'", "'.$prenom.'", "'.$matiere.'", "'.$niveau.'", "'.$email.'", "'.$tel.'", "'.$adresse.'", "'.$pass.'")') or die ('Erreur :'.mysql_error());

if(isset($result))
echo "1";
else
echo "2";



tous fonctionne parfaitement saufe les valeur des
tableaux me donne : u, n, d, e, f, i, n, e, d

y'a t'il quelqu'un pour m'aide svp.

11 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
Bonjour,

c'est illisible (**)
mais bon, j'ai cru voir :
>>>ou il y'a des checkbox pour sélectionnez les matières....et tu fais var matiere new Array(); matiere document.FormAjouterProf.matiere;
et tu n'as pas plusieurs de matières ????
donc : laquelle ? le navigateur ne peut pas savoir.

si c'est le même name :
document. name_du_formulaire .name_des_checkbox.length c'est le nombre et tu utilises
document.name_du_formulaire.name_des_checkbox[index].value ou .checked

index variant de 0 à document.name_du_formulaire.name_des_checkbox.length-1

** la saisie wysiwyg utilisée n'est pas compatible avec ton navigateur
clique sur [../infomsg.aspx?ajout =&ID=1308953&txtmode=0 Si vous n'arrivez pas à saisir votre message, CLIQUEZ ICI pour revenir à une "TextBox classique"] en dessous le bouton "Ajouter"

Cordialement [mon Site] [M'écrire] Bul
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
matiere ? lequel ? ou alors regarde push.
mais ce qu'on passe en paramètres get ou post, c'est une chaîne de caractères.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
var matiere = new Array();
matiere = document.FormAjouterProf.elements['matiere[]'];

fait un alert de matiere....
si tu veux mettre dans un array,
boucle :
    matiere[index]=document.FormAjouterProf.elements['matiere[]'][index];
ou push matiere(document.FormAjouterProf.elements['matiere[]'][index]);
Messages postés
5
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
11 mai 2009

j'ai fais

var matiere = new Array();
for (i=0;i<document. FormAjouterProf. matiere.length;i++)
{
matiere = document.FormAjouterProf.matiere[i].checked;
}

mais ca na rien donne
Messages postés
5
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
11 mai 2009

Arabe + Français + Anglais + Sciences +Physique+

Mat + Sociologie+ Philosophie+ Traduction + Sport

je veut passe cette array par GET a l'aide d'AJAX

a un fichier php qui va insérer les valeur du

formulaire a la BDD.

si se n'ai pas possible de passer un array par GET

POST, est-il possible de transformer cette array

en chaîne de caractères pour pourvoir la transféré ?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ma question concernait ton script !
tu fais matiere=....
or matiere a été déclarée juste devant comme un array

essaye simplement ça :
    var t=new Array();
    t="toto";
    alert(t.length);

>>passe cette array par GET a l'aide d'AJAX a un fichier php qui
va insérer
>>les valeur du formulaire a la BDD.
j'avais bien compris....

>>si se n'ai pas possible
de passer un array par GET POST,
un array ce n'est pas une chaîne de caractères et pour la transmission
    ( get ou post ) seules les chaînes de caractères sont permises
il faut donc d'abord le transformer
bêtement par exemple : "....&prm="+ton_array.join(",")+"..."
             php $_GET['prm']='poste 0,poste 1,poste 2.....   '
mais on doit pouvoir nettement mieux faire
@+
Messages postés
5
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
11 mai 2009

j'ai fais comme ca :

var matiere = new Array();
matiere = document.FormAjouterProf.elements['matiere[]'];

var niveau = new Array();

niveau = document.FormAjouterProf.elements['niveau[]'];

if(texte = file('ADMINISTRATION/js/ajouter-prof-mysql.php?nom='+nom+'&prenom='+prenom+'&email='+email+'&tel='+tel+'&adresse='+adresse+'&pass='+pass+'&matiere='+matiere.join(",")+'&niveau='+niveau.join(",")));


mais ca passe pas !
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
d'ailleurs : document.FormAjouterProf['matiere[]'][index]
Messages postés
5
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
11 mai 2009

Je vous remercie de votre aide, je n'ai pas le temps pour tester maintenant,
mais si vous dite que ça marche :)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
ça marche, ça marche.... pour mettre dans un Array,
sans préjuger du reste.