IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Données venant d'ajax non postées


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut Données venant d'ajax non postées
    Voir le document joint pour une copie d'écran.

    Lorsqu’on spécifie dans le champ « Nombre d’options » un nombre, les champs Option 1,… sont affichés en utilisant ajax.

    Quand je clique sur Ajouter, les variables liées aux champs Option 1,… ne sont pas postées.

    Pourtant, le code généré semble correct.

    Voici le code généré (récupéré avec l'extension firefox webdevelopper) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <form action="addelemgen.php" method="post" name="formelemgen">
    </form>
    <tbody>
    	<tr>
    		<td width="400"><b>Libellé</b>&nbsp;<input name="libelemgen" size="40" maxlength="255" type="text"></td>
    		<td width="400"><b>Type</b>&nbsp;
    			<select name="typeelemgen" onchange="javascript:champ_formulaire()">
    				<option></option>
    				<option value="2__CheckBox">Case à cocher</option>
    				<option value="7__TextBox">Champ texte</option>
    				<option value="5__Date">Date</option>
    				<option value="3__Radio">Groupe d'options</option>
    				<option value="6__Label">Label</option>
    				<option value="4__Select">Liste déroulante</option>
    				<option value="1__Blank">Zone de séparation</option>
    				<option value="8__TextArea">Zone de texte</option>
    			</select>
    		</td>
    	</tr>
    	<tr>
    		<td colspan="2" style="display: none;" id="size">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Expression rationnelle</b></td>
    						<td><input name="regexpelemgen" size="100" maxlength="100" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    		<td style="" id="nb_option">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Nombre d'options</b></td>
    						<td><input name="nb_option" id="idjs_nb_option" size="10" maxlength="2" onkeyup="affiche_nb_option(document.getElementById('idjs_nb_option').value);" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    		<td style="" id="option">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Option 1</b></td>
    						<td><input name="nb_option_1" size="20" maxlength="100" type="text"></td>
    					</tr>
    					<tr>
    						<td><b>Option 2</b></td>
    						<td><input name="nb_option_2" size="20" maxlength="100" type="text"></td>
    					</tr>
    					<tr>
    						<td><b>Option 3</b></td>
    						<td><input name="nb_option_3" size="20" maxlength="100" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    	</tr>
    	<tr align="center">
    		<td>&nbsp;</td>
    	</tr>
    	<tr align="center">
    		<td colspan="2"><input name="fromadminelemgen" value="admin.php" type="hidden"><input name="ID_ELEMENT_MENU" value="4" type="hidden"><input value="Ajouter" onclick="javascript:validationelemgen()" type="button"></td>
    	</tr>
    </tbody>
    Je devrais pouvoir récupérer nb_option_1, etc en POST, mais ce n'est pas le cas.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Si tu affiches les variables $_POST avec print_r() tu n'as rien du tout ?

    PS : Prochaine fois, prends le temps d'indenter ton code pour qu'on ai pas à le faire stp...

  3. #3
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut
    Ben non, c'est pareil...

    PS : J'ai posté mon message à la dernière minute, donc j'ai pas eu le temps de mettre le code en forme. C'est fait maintenant.

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Ton <form></form> a une portée nulle :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <form action="addelemgen.php" method="post" name="formelemgen">
    </form>

    La balise </form> doit se trouver après ton dernier input (dans ton cas, le dernier est <input ..... type="button" />)

    Perso, le <input type="button" /> marchait pas chez moi, j'ai donc mis input="submit" et tout fonctionne, voici le code que j'ai testé :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <form action="addelemgen.php" method="post" name="formelemgen">
     
    <tbody>
    	<tr>
    		<td width="400"><b>Libellé</b>&nbsp;<input name="libelemgen" size="40" maxlength="255" type="text"></td>
    		<td width="400"><b>Type</b>&nbsp;
    			<select name="typeelemgen" onchange="javascript:champ_formulaire()">
    				<option></option>
    				<option value="2__CheckBox">Case à cocher</option>
    				<option value="7__TextBox">Champ texte</option>
    				<option value="5__Date">Date</option>
    				<option value="3__Radio">Groupe d'options</option>
    				<option value="6__Label">Label</option>
    				<option value="4__Select">Liste déroulante</option>
    				<option value="1__Blank">Zone de séparation</option>
    				<option value="8__TextArea">Zone de texte</option>
    			</select>
    		</td>
    	</tr>
    	<tr>
    		<td colspan="2" style="display: none;" id="size">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Expression rationnelle</b></td>
    						<td><input name="regexpelemgen" size="100" maxlength="100" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    		<td style="" id="nb_option">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Nombre d'options</b></td>
    						<td><input name="nb_option" id="idjs_nb_option" size="10" maxlength="2" onkeyup="affiche_nb_option(document.getElementById('idjs_nb_option').value);" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    		<td style="" id="option">
    			<table>
    				<tbody>
    					<tr>
    						<td><b>Option 1</b></td>
    						<td><input name="nb_option_1" size="20" maxlength="100" type="text"></td>
    					</tr>
    					<tr>
    						<td><b>Option 2</b></td>
    						<td><input name="nb_option_2" size="20" maxlength="100" type="text"></td>
    					</tr>
    					<tr>
    						<td><b>Option 3</b></td>
    						<td><input name="nb_option_3" size="20" maxlength="100" type="text"></td>
    					</tr>
    				</tbody>
    			</table>
    		</td>
    	</tr>
    	<tr align="center">
    		<td>&nbsp;</td>
    	</tr>
    	<tr align="center">
    		<td colspan="2"><input name="fromadminelemgen" value="admin.php" type="hidden"><input name="ID_ELEMENT_MENU" value="4" type="hidden"><input value="Ajouter" onclick="javascript:validationelemgen()" type="submit"></td>
    	</tr>
    </tbody>
    </form>
    <?php
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    ?>

  5. #5
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 480
    Par défaut
    Je l'avais remarqué.
    Je pense que c'est l'extension webdevelopper qui fait ça, de même que les différentes balises tbody, que je n'ai pas mis dans mon code.

    Si le problème venait de <form>, aucune donnée ne serait postée, ce qui n'est pas le cas.
    Seules les données nb_option_1 etc ne sont pas postées.

    Le problème est donc ailleurs.
    Est-ce que le fait d'afficher par ajax la partie concernée dans un tableau et non un div peut l'expliquer ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Par défaut
    C'est possible d'avoir la page en entier avec le JS pour pouvoirs faire des test stp ?

    Pas le php par contre, juste la sortie HTML

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Lister les Bases de données (SQL SERVER) d'un poste
    Par justice007 dans le forum Accès aux données
    Réponses: 9
    Dernier message: 21/06/2010, 16h10
  2. [MooTools] Envoyer des données XML en Ajax en POST
    Par gannher dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 17/06/2008, 14h03
  3. [AJAX] Données qui ne sont pas postées en ajax
    Par senacle dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/05/2008, 11h59
  4. Importation de données venant de fichier fermé ( *.xls)
    Par stormless dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 08/11/2005, 21h21
  5. Conception de Base de données (AutoIncrément oui ou non)
    Par matgel dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 16/04/2004, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo