Page 1 sur 1

aide pour une regex

Posté : 05 juil. 2011, 16:08
par VaN
Bonjour,

je récupère un tableau de cette forme :
Array
(
    [0] => Array
        (
            [name] => questions[1][propositions][1][reponse]
            [value] => 4
        )

    [1] => Array
        (
            [name] => questions[1][propositions][2][reponse]
            [value] => 3
        )

    [2] => Array
        (
            [name] => questions[1][propositions][3][reponse]
            [value] => 0
        )

    [3] => Array
        (
            [name] => questions[1][propositions][4][reponse]
            [value] => 0
        )

    [4] => Array
        (
            [name] => questions[1][propositions][5][reponse]
            [value] => 2
        )

)
Je souhaite récupérer les valeurs variables que sont les chiffres, dans les strings contenus dans la colonne [name].

Au final, j'aimerai me retrouver avec quelque chose de ce genre :
$question_id = 1;
$propositions = array(1 => 4, 2 => 3, 3 => 0, 4 => 0, 5 => 2);
J'imagine que je dois passer par une expression régulière, mais je n'y comprend pas grand chose. un peu d'aide serait la bienvenue.

Merci d'avance.

Re: aide pour une regex

Posté : 05 juil. 2011, 16:34
par stealth35
Il est récupéré d’où ce tableau ?

Re: aide pour une regex

Posté : 05 juil. 2011, 16:43
par VaN
Il s'agit d'un formulaire, récupéré sur un onclick(), et passé à un fichier PHP à l'aide d'un jQuery.serializeArray().

Le formulaire HTML :
										
						<fieldset class="step" id="step-1" style="position:relative;">			
						<ul class="liste-propositions">
											
							<li>
								<span class="proposition-reponses tabbed-container">
									<label for="proposition-1-0" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][1][reponse]" id="proposition-1-0" value="0" class="tabbed-input" checked="checked" />Faux</label>
									<label for="proposition-1-1" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][1][reponse]" id="proposition-1-1" value="1" class="tabbed-input" />Vrai</label>
								</span>
								<div class="proposition-texte">
						Elles sont apolaires.									</div>

								<br class="clear-both" />
							</li>
						
												
							<li>
								<span class="proposition-reponses tabbed-container">
									<label for="proposition-2-0" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][2][reponse]" id="proposition-2-0" value="0" class="tabbed-input" checked="checked" />Faux</label>
									<label for="proposition-2-1" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][2][reponse]" id="proposition-2-1" value="1" class="tabbed-input" />Vrai</label>
								</span>
								<div class="proposition-texte">

						Elles forment des liaisons hydrogènes entre elles.									</div>
								<br class="clear-both" />
							</li>
						
												
							<li>
								<span class="proposition-reponses tabbed-container">
									<label for="proposition-3-0" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][3][reponse]" id="proposition-3-0" value="0" class="tabbed-input" checked="checked" />Faux</label>
									<label for="proposition-3-1" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][3][reponse]" id="proposition-3-1" value="1" class="tabbed-input" />Vrai</label>

								</span>
								<div class="proposition-texte">
						Les deux atomes d’hydrogène constituent la région électronégative.									</div>
								<br class="clear-both" />
							</li>
						
												
							<li>
								<span class="proposition-reponses tabbed-container">
									<label for="proposition-4-0" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][4][reponse]" id="proposition-4-0" value="0" class="tabbed-input" checked="checked" />Faux</label>

									<label for="proposition-4-1" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][4][reponse]" id="proposition-4-1" value="1" class="tabbed-input" />Vrai</label>
								</span>
								<div class="proposition-texte">
						Elles ne sont pas ionisables, même en présence d’un acide fort.									</div>
								<br class="clear-both" />
							</li>
						
												
							<li>
								<span class="proposition-reponses tabbed-container">

									<label for="proposition-5-0" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][5][reponse]" id="proposition-5-0" value="0" class="tabbed-input" checked="checked" />Faux</label>
									<label for="proposition-5-1" class="tabbed-label label_radio"><input type="radio" name="questions[1][propositions][5][reponse]" id="proposition-5-1" value="1" class="tabbed-input" />Vrai</label>
								</span>
								<div class="proposition-texte">
						Elles peuvent interagir avec les protéines par des liaisons hydrogènes.									</div>
								<br class="clear-both" />
							</li>

						
												</ul>
					</fieldset>
Et le pasage au fichier PHP :

Code : Tout sélectionner

var propositions = $('#step-' + current_step + ' input[type=radio]').serializeArray(); $.getJSON('core/ajax_queries.php', { action: "correction_from_proposition", propositions_json: propositions }, function(data) { });

Re: aide pour une regex

Posté : 05 juil. 2011, 17:50
par stealth35
mais y'a un soucis la, tu tableau ne devrai pas être comme ça, soumet le hors ajax et tu comprendras, récupère le formulaire plutôt que les champs un a un

Re: aide pour une regex

Posté : 06 juil. 2011, 09:55
par VaN
Je ne peux pas vraiment récupérer tout le formulaire. Il s'agit en fait d'un formulaire proposant un QCM, de 10 questions, chaque question proposant 5 réponses possible. L'extrait que j'ai mis là représente la question 1, mais il y'a 10 <fieldset> comme celui, que je fais "slider" 1 à 1 (grâce à Fancy Sliding Form : http://tympanus.net/Tutorials/FancySlidingForm/), lorsque l'on clique sur suivant. Et sur ce onlick, je veux récupérer les réponses de la question précédente, aller chercher les réponses correctes en base de données, et afficher sur la question N, les corrections de la question N-1. Cela aurait été bcp plus simple de tout corriger à la fin, ou de réellement poster le formulaire après chaque question, mais le client ne veut pas. Il faut donc que lorsque je clique sur "Suivant", je récupère l'identifiant de la question N-1 ainsi que les réponses données.

La solution sinon c'est effectivement de récupérer tout le formulaire, et d'aller chercher la bonne question dans le tableau posté, mais ça me fait poster en AJAX 10 fois 10 questions, alors que j'en ai besoin que d'une seule à chaque fois : /