Bonjour à tous,
Je débute en programmation et je suis complétement bloqué
j'ai un problème avec l'affichage de mon formulaire arborescent dans joomla.
je m'explique. sur une première page l'utilisateur sélectionne les catégories qu'il souhaite voir apparaitre dans le formulaire (il a le choix entre 16 catégories), puis il valide.
le script de création est appelé.
tout se passe à merveille le formulaire apparait. sauf que...
si on sélectionne plus de 4 catégories simultanément joomla m'affiche une belle page blanche.
pour info j'utilise RD ADD PHP pour appeler mon ficher php dans un article joomla
Est ce que quelqu'un peu m'aider SVP
merci d'avance.
voici le script en question
********
<?php
$query = "SELECT ID, Nom, Parent, Niv, Chniv, Type, Size, Optionval FROM jos_fields_formdevis ORDER BY Parent ASC";
$result = mysql_query($query) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$categories = array();
while($dat = mysql_fetch_array($result)) {
$categories[] = array(
'parent_id' => $dat['Parent'],
'categorie_id' => $dat['ID'],
'nom_categorie' => $dat['Nom'],
'niv_categorie' => $dat['Niv'],
'chniv_categorie' => $dat['Chniv'],
'type_categorie' => $dat['Type'],
'text_size' => $dat['Size'],
'opt_val' => $dat['Optionval']
);
}
function afficher_menu($parent, $niveau, $array) {
$html = "";
$niveau_precedent = 0;
if (!$niveau && !$niveau_precedent) $html .= '<div class="levl1">';
foreach ($array AS $noeud) {
if ($parent == $noeud['parent_id']) {
if ($niveau_precedent < $niveau) $html .= '<div id="div_'.$noeud['parent_id'].'_'.$noeud['niv_categorie'].'" style="display:none">';
if ($noeud['type_categorie'] == "com") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="com" style="display:block"><span>'.$noeud['nom_categorie'].'</span><br />';
}
if ($noeud['type_categorie'] == "text") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2">'.$noeud['nom_categorie'].'</div><div class="objtext"><input id="'.$noeud['categorie_id'].'" type="text" size="'.$noeud['text_size'].'" name="'.$noeud['parent_id'].'"></div>';
}
if ($noeud['type_categorie'] == "textarea") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2" style="vertical-align: top">'.$noeud['nom_categorie'].'</div><textarea id="'.$noeud['categorie_id'].'" class="objtextarea" name="'.$noeud['parent_id'].'" rows="7" cols="35" ></textarea>';
}
if ($noeud['type_categorie'] == "select") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2">'.$noeud['nom_categorie'].'</div><div class="objselect"><select id="'.$noeud['categorie_id'].'" name="'.$noeud['parent_id'].'" onclick="javascript:getchild(\'div_'.$noeud['categorie_id'].'_'.$noeud['chniv_categorie'].'\')"> <option value="">---Choisissez---</option><br />';
$select = $noeud['opt_val'];
$tab = explode(";", $select);
foreach($tab as $element)
{
$html .= '<option value="'.$element.'">'.$element.'</option><br />';
}
$html .='</select></div>';
}
if ($noeud['type_categorie'] == "checkbox") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><input id="'.$noeud['categorie_id'].'" type="checkbox" name="'.$noeud['parent_id'].'" onclick="javascript:getchild(\'div_'.$noeud['categorie_id'].'_'.$noeud['chniv_categorie'].'\')"><span class="labelfield1">'.$noeud['nom_categorie'].'</span><br />';
}
$niveau_precedent = $niveau;
$html .= afficher_menu($noeud['categorie_id'], ($niveau + 1), $array);
}
}
if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</div></div>";
else if ($niveau_precedent == $niveau) $html .= "</div>";
else $html .= "</div>";
return $html;
}
?>
<div class="formdevis">
<?php
if(isset($_GET['Alarme']))
{
echo '<div id="Alarme" class="titrefieldset"><img class="iconecat" src="images/stories/camera.jpeg" alt="Alarme-Sécurité" height="40px" width="40px"><h2 class="titreform">Alarme-Sécurité</h2></div>';
echo afficher_menu(1, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Architecte']))
{
echo '<div id="Architecte" class="titrefieldset"><img class="iconecat" src="images/stories/architecte.jpeg" alt="Architecte-Expertise" height="40px" width="40px" ><h2 class="titreform">Architecte-Expertise</h2></div>';
echo afficher_menu(2, 0, $categories);
echo '<br/><br/>';
}
if(isset($_GET['Amenagement_Ext']))
{
echo '<div id="Amenagement Ext" class="titrefieldset"><img class="iconecat" src="images/stories/piscine.jpeg" alt="Aménagement Extérieur" height="40px" width="40px"><h2 class="titreform">Aménagement Extérieur</h2></div>';
echo afficher_menu(3, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Amenagement_Int']))
{
echo '<div id="Amenagement Int" class="titrefieldset"><img class="iconecat" src="images/stories/combles.jpeg" alt="Aménagement Intérieur" height="40px" width="40px"><h2 class="titreform">Aménagement Intérieur</h2></div>';
echo afficher_menu(4, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Chauffage']))
{
echo '<div id="Chauffage" class="titrefieldset"><img class="iconecat" src="images/stories/chauffage.jpeg" alt="Chauffage-Chaudière" height="40px" width="40px"><h2 class="titreform">Chauffage-Chaudière</h2></div>';
echo afficher_menu(5, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Climatisation']))
{
echo '<div id="Climatisation" class="titrefieldset"><img class="iconecat" src="images/stories/climatiseur.jpeg" alt="Climatisation-Ventilation" height="40px" width="40px"><h2 class="titreform">Climatisation-Ventilation</h2></div>';
echo afficher_menu(6, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Construction']))
{
echo '<div id="Construction" class="titrefieldset"><img class="iconecat" src="images/stories/construction.jpeg" alt="Construction-Extension" height="40px" width="40px"><h2 class="titreform">Construction-Extension</h2></div>';
echo afficher_menu(7, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Electricite']))
{
echo '<div id="Electricite" class="titrefieldset"><img class="iconecat" src="images/stories/ampoule.jpeg" alt="Electricité" height="40px" width="40px"><h2 class="titreform">Electricité</h2></div>';
echo afficher_menu(8, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Façade']))
{
echo '<div id="Façade" class="titrefieldset"><img class="iconecat" src="images/stories/facade.jpeg" alt="Façade-Ravalement" height="40px" width="40px"><h2 class="titreform">Façade-Ravalement</h2></div>';
echo afficher_menu(9, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Isolation']))
{
echo '<div id="Isolation" class="titrefieldset"><img class="iconecat" src="images/stories/isolation.jpeg" alt="Isolation" height="40px" width="40px"><h2 class="titreform">Isolation</h2></div>';
echo afficher_menu(10, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Menuiserie']))
{
echo '<div id="Menuiserie" class="titrefieldset"><img class="iconecat" src="images/stories/fenetre.jpeg" alt="Menuiserie Bois, Alu, PVC" height="40px" width="40px"><h2 class="titreform">Menuiserie Bois, Alu, PVC</h2></div>';
echo afficher_menu(11, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Nettoyage']))
{
echo '<div id="Nettoyage" class="titrefieldset"><img class="iconecat" src="images/stories/nettoyage.jpeg" alt="Néttoyage" height="40px" width="40px"><h2 class="titreform">Néttoyage</h2></div>';
echo afficher_menu(12, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Peinture']))
{
echo '<div id="Peinture" class="titrefieldset"><img class="iconecat" src="images/stories/peinture.jpeg" alt="Peinture-Revêtement" height="40px" width="40px"><h2 class="titreform">Peinture-Revêtement</h2></div>';
echo afficher_menu(13, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Plomberie']))
{
echo '<div id="Plomberie" class="titrefieldset"><img class="iconecat" src="images/stories/robinet.jpeg" alt="Plomberie-Sanitaire" height="40px" width="40px"><h2 class="titreform">Plomberie-Sanitaire</h2></div>';
echo afficher_menu(14, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Renovation']))
{
echo '<div id="Renovation" class="titrefieldset"><img class="iconecat" src="images/stories/cloison.jpeg" alt="Rénovation" height="40px" width="40px"><h2 class="titreform">Rénovation</h2></div>';
echo afficher_menu(15, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Toiture']))
{
echo '<div id="Toiture" class="titrefieldset"><img class="iconecat" src="images/stories/toiture.jpeg" alt="Toiture-Charpente" height="40px" width="40px"><h2 class="titreform">Toiture-Charpente</h2></div>';
echo afficher_menu(16, 0, $categories);
echo '<br/></br/>';
}
?>
</div>
*************
Je débute en programmation et je suis complétement bloqué
j'ai un problème avec l'affichage de mon formulaire arborescent dans joomla.
je m'explique. sur une première page l'utilisateur sélectionne les catégories qu'il souhaite voir apparaitre dans le formulaire (il a le choix entre 16 catégories), puis il valide.
le script de création est appelé.
tout se passe à merveille le formulaire apparait. sauf que...
si on sélectionne plus de 4 catégories simultanément joomla m'affiche une belle page blanche.
pour info j'utilise RD ADD PHP pour appeler mon ficher php dans un article joomla
Est ce que quelqu'un peu m'aider SVP
merci d'avance.
voici le script en question
********
<?php
$query = "SELECT ID, Nom, Parent, Niv, Chniv, Type, Size, Optionval FROM jos_fields_formdevis ORDER BY Parent ASC";
$result = mysql_query($query) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$categories = array();
while($dat = mysql_fetch_array($result)) {
$categories[] = array(
'parent_id' => $dat['Parent'],
'categorie_id' => $dat['ID'],
'nom_categorie' => $dat['Nom'],
'niv_categorie' => $dat['Niv'],
'chniv_categorie' => $dat['Chniv'],
'type_categorie' => $dat['Type'],
'text_size' => $dat['Size'],
'opt_val' => $dat['Optionval']
);
}
function afficher_menu($parent, $niveau, $array) {
$html = "";
$niveau_precedent = 0;
if (!$niveau && !$niveau_precedent) $html .= '<div class="levl1">';
foreach ($array AS $noeud) {
if ($parent == $noeud['parent_id']) {
if ($niveau_precedent < $niveau) $html .= '<div id="div_'.$noeud['parent_id'].'_'.$noeud['niv_categorie'].'" style="display:none">';
if ($noeud['type_categorie'] == "com") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="com" style="display:block"><span>'.$noeud['nom_categorie'].'</span><br />';
}
if ($noeud['type_categorie'] == "text") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2">'.$noeud['nom_categorie'].'</div><div class="objtext"><input id="'.$noeud['categorie_id'].'" type="text" size="'.$noeud['text_size'].'" name="'.$noeud['parent_id'].'"></div>';
}
if ($noeud['type_categorie'] == "textarea") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2" style="vertical-align: top">'.$noeud['nom_categorie'].'</div><textarea id="'.$noeud['categorie_id'].'" class="objtextarea" name="'.$noeud['parent_id'].'" rows="7" cols="35" ></textarea>';
}
if ($noeud['type_categorie'] == "select") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><div class="labelfield2">'.$noeud['nom_categorie'].'</div><div class="objselect"><select id="'.$noeud['categorie_id'].'" name="'.$noeud['parent_id'].'" onclick="javascript:getchild(\'div_'.$noeud['categorie_id'].'_'.$noeud['chniv_categorie'].'\')"> <option value="">---Choisissez---</option><br />';
$select = $noeud['opt_val'];
$tab = explode(";", $select);
foreach($tab as $element)
{
$html .= '<option value="'.$element.'">'.$element.'</option><br />';
}
$html .='</select></div>';
}
if ($noeud['type_categorie'] == "checkbox") {
$html .= '<div id="div_'.$noeud['categorie_id'].'" class="levl'.$noeud['niv_categorie'].'" style="display:block"><input id="'.$noeud['categorie_id'].'" type="checkbox" name="'.$noeud['parent_id'].'" onclick="javascript:getchild(\'div_'.$noeud['categorie_id'].'_'.$noeud['chniv_categorie'].'\')"><span class="labelfield1">'.$noeud['nom_categorie'].'</span><br />';
}
$niveau_precedent = $niveau;
$html .= afficher_menu($noeud['categorie_id'], ($niveau + 1), $array);
}
}
if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</div></div>";
else if ($niveau_precedent == $niveau) $html .= "</div>";
else $html .= "</div>";
return $html;
}
?>
<div class="formdevis">
<?php
if(isset($_GET['Alarme']))
{
echo '<div id="Alarme" class="titrefieldset"><img class="iconecat" src="images/stories/camera.jpeg" alt="Alarme-Sécurité" height="40px" width="40px"><h2 class="titreform">Alarme-Sécurité</h2></div>';
echo afficher_menu(1, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Architecte']))
{
echo '<div id="Architecte" class="titrefieldset"><img class="iconecat" src="images/stories/architecte.jpeg" alt="Architecte-Expertise" height="40px" width="40px" ><h2 class="titreform">Architecte-Expertise</h2></div>';
echo afficher_menu(2, 0, $categories);
echo '<br/><br/>';
}
if(isset($_GET['Amenagement_Ext']))
{
echo '<div id="Amenagement Ext" class="titrefieldset"><img class="iconecat" src="images/stories/piscine.jpeg" alt="Aménagement Extérieur" height="40px" width="40px"><h2 class="titreform">Aménagement Extérieur</h2></div>';
echo afficher_menu(3, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Amenagement_Int']))
{
echo '<div id="Amenagement Int" class="titrefieldset"><img class="iconecat" src="images/stories/combles.jpeg" alt="Aménagement Intérieur" height="40px" width="40px"><h2 class="titreform">Aménagement Intérieur</h2></div>';
echo afficher_menu(4, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Chauffage']))
{
echo '<div id="Chauffage" class="titrefieldset"><img class="iconecat" src="images/stories/chauffage.jpeg" alt="Chauffage-Chaudière" height="40px" width="40px"><h2 class="titreform">Chauffage-Chaudière</h2></div>';
echo afficher_menu(5, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Climatisation']))
{
echo '<div id="Climatisation" class="titrefieldset"><img class="iconecat" src="images/stories/climatiseur.jpeg" alt="Climatisation-Ventilation" height="40px" width="40px"><h2 class="titreform">Climatisation-Ventilation</h2></div>';
echo afficher_menu(6, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Construction']))
{
echo '<div id="Construction" class="titrefieldset"><img class="iconecat" src="images/stories/construction.jpeg" alt="Construction-Extension" height="40px" width="40px"><h2 class="titreform">Construction-Extension</h2></div>';
echo afficher_menu(7, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Electricite']))
{
echo '<div id="Electricite" class="titrefieldset"><img class="iconecat" src="images/stories/ampoule.jpeg" alt="Electricité" height="40px" width="40px"><h2 class="titreform">Electricité</h2></div>';
echo afficher_menu(8, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Façade']))
{
echo '<div id="Façade" class="titrefieldset"><img class="iconecat" src="images/stories/facade.jpeg" alt="Façade-Ravalement" height="40px" width="40px"><h2 class="titreform">Façade-Ravalement</h2></div>';
echo afficher_menu(9, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Isolation']))
{
echo '<div id="Isolation" class="titrefieldset"><img class="iconecat" src="images/stories/isolation.jpeg" alt="Isolation" height="40px" width="40px"><h2 class="titreform">Isolation</h2></div>';
echo afficher_menu(10, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Menuiserie']))
{
echo '<div id="Menuiserie" class="titrefieldset"><img class="iconecat" src="images/stories/fenetre.jpeg" alt="Menuiserie Bois, Alu, PVC" height="40px" width="40px"><h2 class="titreform">Menuiserie Bois, Alu, PVC</h2></div>';
echo afficher_menu(11, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Nettoyage']))
{
echo '<div id="Nettoyage" class="titrefieldset"><img class="iconecat" src="images/stories/nettoyage.jpeg" alt="Néttoyage" height="40px" width="40px"><h2 class="titreform">Néttoyage</h2></div>';
echo afficher_menu(12, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Peinture']))
{
echo '<div id="Peinture" class="titrefieldset"><img class="iconecat" src="images/stories/peinture.jpeg" alt="Peinture-Revêtement" height="40px" width="40px"><h2 class="titreform">Peinture-Revêtement</h2></div>';
echo afficher_menu(13, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Plomberie']))
{
echo '<div id="Plomberie" class="titrefieldset"><img class="iconecat" src="images/stories/robinet.jpeg" alt="Plomberie-Sanitaire" height="40px" width="40px"><h2 class="titreform">Plomberie-Sanitaire</h2></div>';
echo afficher_menu(14, 0, $categories);
echo '<br></br/>';
}
if(isset($_GET['Renovation']))
{
echo '<div id="Renovation" class="titrefieldset"><img class="iconecat" src="images/stories/cloison.jpeg" alt="Rénovation" height="40px" width="40px"><h2 class="titreform">Rénovation</h2></div>';
echo afficher_menu(15, 0, $categories);
echo '<br/></br/>';
}
if(isset($_GET['Toiture']))
{
echo '<div id="Toiture" class="titrefieldset"><img class="iconecat" src="images/stories/toiture.jpeg" alt="Toiture-Charpente" height="40px" width="40px"><h2 class="titreform">Toiture-Charpente</h2></div>';
echo afficher_menu(16, 0, $categories);
echo '<br/></br/>';
}
?>
</div>
*************