Soucis de formulaire avec variable globale
Bonjour,
J'ai un soucis... vous pouvez peut-être éclairer ma lanterne, je ne comprends pas pourquoi mon second formulaire ne s'affiche pas...:?
Alors je situe le contexte, je viens d'une page sur laquelle j'ai cliqué sur une image, qui me sert de lien vers la page actuelle, tout en récupérant un id afin d'afficher l'image cliquée en première dans un slideshow. Au dos de ces images se trouve un formulaire.
Ici je teste avec 2 images, la première c'est ok mais pour la seconde ce n'est pas le cas.
J'obtiens bien le texte qui doit se trouver dans le formulaire, sauf qu'il n'y a que la balise fermante du second formulaire.
Donc, les parties de code qui nous intéressent
Tout d'abord ouverture de formulaire, à noter que la global $vGlobForm est mise à NULL tout en haut du fichier qui contient les fonctions suivantes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
function startForm($args)
{
global $vGlobForm;
$vGlobForm = NULL;
$openForm = "<form";
$closeForm = ">";
$vGlobForm .= $openForm;
if (!empty($args))
{
foreach($args as $key => $value)
{
$vGlobForm .= ' '.$key.'="'.$value.'"';
}
}
$vGlobForm .= $closeForm;
} |
Code:
1 2 3 4 5 6 7
|
//Fonction fermant un formulaire
function endForm()
{
global $vGlobForm;
$vGlobForm .= '</form>';
} |
Code:
1 2 3 4 5 6 7
|
//Fonction renvoyant l'intégralité du formulaire
function getForm()
{
global $vGlobForm;
return $vGlobForm;
} |
A noter ici que les lignes commentées de 52 à 54 sont fonctionnelles...
Code:
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
|
// Utilisée sur la page Slideshow.php
function getPicSlideshow()
{
dbConnect('mysql','localhost',...Connexion à la DB);
global $vGlobConnect;
global $vGlobForm;
// On vérifie le rôle de l'utilisateur connecté pour la possibilité d'édition du formulaire ModelDescription
if ((isset($_SESSION['UserRole'])) && ($_SESSION['UserRole'] == 'Administrateur'))
$form = startForm($args = array('class' => 'backfacePic imageAutre visHidden',
'name' => 'ModelDescription',
'contenteditable' => 'false',
'ondblclick' => 'contentUpdate(this.id)'
)
);
else
$form = startForm($args = array('class' => 'backfacePic imageAutre visHidden',
'name' => 'ModelDescription',
'contenteditable' => 'false'
)
);
// On sélectionne tous les "models"
$sql = $vGlobConnect->query("CALL `selectModels`();");
// On fetch le résultat de la procédure stockée
$tab = $sql->fetchAll();
// On récupère l'indice de l'image sur laquelle l'utilisateur a cliqué sur la page d'index
$firstPicModelID = array_search($_GET['picId'], array_column($tab, 'ModelID'));
// On affiche l'image en question avec les infos récupérées
echo '<img id="'.$firstPicModelID.'" src="'.$tab[$firstPicModelID]['ModelPath'].$tab[$firstPicModelID]['ModelName'].'" alt="'.$tab[$firstPicModelID]['ModelName'].'" class="imageAutre visHidden" title="'.$tab[$firstPicModelID]['ModelName'].'" />';
$vGlobForm .= $form;
$vGlobForm .= $tab[$firstPicModelID]['ModelDescription'];
endForm();
echo getForm();
// On charge à présent les autres
foreach ($tab as $value)
{
if ($value['ModelID']==$_GET['picId'])
continue;
$firstPicModelID++;
echo '<img id="'.$firstPicModelID.'" src="'.$value['ModelPath'].$value['ModelName'].'" alt="'.$value['ModelName'].'" class="imageAutre visHidden" title="'.$value['ModelName'].'" />';
//echo '<form class="backfacePic imageAutre visHidden" name="ModelDescription" contenteditable="false">';
//echo $value['ModelDescription'];
//echo '</form>';
$vGlobForm = $form;
echo '<script type="text/javascript">alert("'.$vGlobForm.'")</script>';
$vGlobForm .= $value['ModelDescription'];
endForm();
echo getForm();
}
$sql->closeCursor();
} |
J'obtiens donc ceci, ou visiblement il me manque le début de mon second formulaire... Une idée ? :calim2:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<div class="coverSide" id="left"></div>
<div class="container" >
<div class="slider" >
<div class="prev" ></div>
<img id="0" src="../images/products/5.jpg" alt="5.jpg" class="imageAutre visHidden" title="5.jpg" />
<form class="backfacePic imageAutre visHidden" name="ModelDescription" contenteditable="false">Test de description</form>
<img id="1" src="../images/products/123.jpg" alt="123.jpg" class="imageAutre visHidden" title="123.jpg" />Seconde description</form>
<div class="next" ></div>
</div>
</div>
<div class="coverSide" id="right"></div> |