Récupérer la valeur d'une variable globale déclaré en javascript dans une variab

Résolu
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007 - 3 sept. 2007 à 12:19
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 5 sept. 2007 à 19:14
bonjour
dans mon application j'ai défini une fonction javascript qui ajoute des champs text (input) dynamiquement suivant la demande de l'utilisateur:

function create_champ(i)
{
var i1=i;
var i2 = i + 1;
document.getElementById('leschamps_'+i).innerHTML ='';
/*code*/
}

maintenant je veu récupérer le contenu de ces champs là pour les enregistrer dans une base de données MYSQL.
Mon idé consiste à récupérer la valeur i déclaré en javascript dans une variable déclaré en php puis mettre le code de l'insertion dans la base dans une boucle.
le probléme c'est que je ne sais pas comment le faire.
y a t-il quelqu'un qui peu m'aider ,ou bien qui a une autre idé qui est plus professionnelle??
Merci.

18 réponses

hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
5 sept. 2007 à 12:48
concernant la récupération de la valeur d'une variable déclaré en javascript dans une variable déclaré en php c'est trés facile  et je ne sais pas comment j'ai oublier le truc

on doi mettre la varible(dans le code javascript)dans un champs input de type hidden puis récupérer la valeur dans une variable déclaré en php aprés l'envoi de la formulaire

en tout casmerci Evangun et j'attend ta réponse à propos l'idé que tu l'as suggéreé
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 12:28
Cet input c'est comme n'importe quel input, tu valides le fomulaire et voilà...
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 12:42
oui je sais que " c'est comme n'importe quel input " mais moi je ne sais pas combien de champ texte j'ai dans mon formulaire .mon probléme se situe au niveau du passage du  javascript vers php
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 13:12
Tu donnes à tes inputs le nom :
name="input[]"

et en php quand tu récupères, tu fais

foreach($_POST['input'] as $value){
    echo $value;
}

en javascript tu pourrais aussi donner un nom différent à chaque input, genre input1, input2...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 14:01
Merci Evangun, mais supposons qu'a chaque fois l'utilisateur clique sur le lien pour ajouter un nouveau champ la fonction javascript ajoute simultanément un champ input et un checkbox nommés successivement pour la niéme fois "input_n" et "checkbox_n" qui ont une relation logique entre eux 
exemple:
si checkbox_n est coché alors le txte en input_n est une bonne réponse
qu'est ce que je peu faire??

et  tu m'as dit
"en javascript tu pourrais aussi donner un nom différent à chaque input, genre input1, input2..."
tu veu dire ce si:
document.getElementById('leschamps_'+i).innerHTML ='+i+'" >';
merci
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 14:28
Oui, tu mets une variable globale en javascript :

var count = 1;

function ajouterinput(){
    document.getElementById('leschamps_'+i).innerHTML ="+count+"\
" >";
    document.getElementById('leschamps_'+i).innerHTML ="+count+"\
" >";
    count++;
}
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 16:20
Ok merci,je suis tout affait d'accord avec toi pour cette syntaxe (bien que ça marche bien comme j'ai déclaré)mais je veu savoir la procedure convenable pour accorder l'enregistrement dans la base des champs
comments_i et checkbox_i dans un meme tuple,
tu m'as conseiller au début de faire les instructions suivantes:

foreach($_POST['input'] as $value){
    echo $value;
}
mais le probléme maintenant c'est qu'on ne peu pas distinguer le checkbox correspendant à un input.ce que je demande:existe t-il une méthode pour connaître le nombre d'un type bien définit (par exemple nbre de checkbox) dans une formulaire
sachant que j'ai plusieurs formulaire dans ma page.
Merci
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 17:12
Ben si, puisque input_5 correspond à checkbox_5.

donc tu as

name="input[]" pour les inputs
et
name="checkbox[]"  pour les checkbox

et en php quand tu récupères, tu fais

foreach($_POST['input'] as $key => $value){
    echo $value; //ici ça montre la valeur du input X
    if(isset($_POST['checkbox']['.$key.'])){
          //ici ce qui se passe quand la checkbox X a été cochée
    }
}
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 17:32
Merci bien Evangun, maintenant j'ai tout un petit question:
est ce que tu peu m'expliqué cette ligne:
foreach($_POST['input'] as $key => $value) et surtout ce qui est en rouge
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 17:44
Hajeur_abd, il va falloir que tu comprennes un truc : ici on n'est pas là pour t'apprendre le php, et il me semble te l'avoir déjà dit.

On peut t'aider à résoudre des problèmes ponctuels, mais on va pas t'expliquer la vie. Alors tu vas mettre un site dans tes favoris qui s'appelle [www.php.net php.net] , tu vas y aller, tu vas taper "foreach" dans le champ de recherche en haut, et tu vas lire les explications toi-même.

salut
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 18:49
Tu devrais fermer ce topic si ton problème est réglé, merci !
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 21:56
bonsoir
j'ai essayer le code que tu m'as donné (aprés la lecture du document concernant la fonction foreach() bien sur )  :

foreach($_POST['reponses'] as $value){
    echo $value;
}

mais le mesage suivant s'affiche au lieu de $value

Warning: Invalid argument supplied for foreach() in d:\application\learning\qcm.php on line 24
y a t-il quelqu'un qui peu m'aider à corriger cette erreur??
merci par avance.
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
3 sept. 2007 à 21:59
j'ai oublier de dire que j'utilise easyphp1.6 (qui fonctionne avec PHP 4.2.0) c'est a dire normalement il supporte la fonction foreach()
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 22:11
Comme le dit si bien php, "Invalid argument supplied for foreach()"

ce qui veut dire en français "l'argument de la fonction est invalide".

et l'argument pour être valide, ça doit être quoi ? un tableau ! Conclusion ? ton argument n'est pas un tableau !

Bref, $_POST['reponses'] n'existe pas du tout ou n'est pas un tableau !

Tu vois, le php c'est très logique, il suffit de réfléchir un peu.
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
5 sept. 2007 à 12:38
bonjour
tu m'as dit:
"Bref, $_POST['reponses'] n'existe pas du tout ou n'est pas un tableau !"
mais j'ai essayer avec un bout de code qui est simple et l'erreur perciste:

<?php
$i = 0; /* uniquement pour l'illustration */
$a = array(1, 2, 3, 17);
?>
<html>

<form>

</form>
</html>
<?
foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}
?>
pourtant que ça marche bien lorsqu'on déclare :
$a=array(1,2,3,17);
mais pourquoi?????????
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 sept. 2007 à 14:10
De quelle idée tu parles ?
Sinon c'est sympa d'accepter ta propre réponse lol
0
hajeur_abd Messages postés 46 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 25 septembre 2007
5 sept. 2007 à 15:08
et alors c'est la réponse qui répond au titre du cet sujet et surement qui va aider quelque un à résoudre leurs problémes similaire alors ne soyer pas jaloux

a propos "De quelle idée tu parles ?" je parle de votre idé qui consiste à utilisé un tableau d'input

qu'est ce que tu va faire pour récupérer leur valeur avec foreach car ça ne veu pas marcher et si tu veu savoir des détails consultez mon message qui précéde celui que je l'ai accepté
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 sept. 2007 à 19:14
Ne m'en veux pas mais je laisse tomber, tu es trop désespérant... sans compter que c'est un vrai effort de te lire avec ces innombrables fautes de français... fais comme tu veux, tant mieux si ça marche.
bonne chance
0