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

hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 12:19 - Dernière réponse : Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 5 sept. 2007 à 12:48
3
Merci
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é

Merci hajeur_abd 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 128 internautes ce mois-ci

Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 12:28
0
Merci
Cet input c'est comme n'importe quel input, tu valides le fomulaire et voilà...
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 12:42
0
Merci
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
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 13:12
0
Merci
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...
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 14:01
0
Merci
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
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 14:28
0
Merci
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++;
}
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 16:20
0
Merci
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
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 17:12
0
Merci
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
    }
}
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 17:32
0
Merci
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
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 17:44
0
Merci
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
Commenter la réponse de Evangun
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 18:49
0
Merci
Tu devrais fermer ce topic si ton problème est réglé, merci !
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 21:56
0
Merci
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.
Commenter la réponse de hajeur_abd
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 3 sept. 2007 à 21:59
0
Merci
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()
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 3 sept. 2007 à 22:11
0
Merci
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.
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 5 sept. 2007 à 12:38
0
Merci
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?????????
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 5 sept. 2007 à 14:10
0
Merci
De quelle idée tu parles ?
Sinon c'est sympa d'accepter ta propre réponse lol
Commenter la réponse de Evangun
hajeur_abd 46 Messages postés lundi 4 avril 2005Date d'inscription 25 septembre 2007 Dernière intervention - 5 sept. 2007 à 15:08
0
Merci
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é
Commenter la réponse de hajeur_abd
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 5 sept. 2007 à 19:14
0
Merci
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
Commenter la réponse de Evangun

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.