Bonjour à toutes et à tous :)
Après une grosse après-midi d'acharnement à comprendre d'une part pourquoi une balise div se fermer avant une autre par magie dans une page et pas une autre, et pourquoi des balises form disparaissaient d'une page a une autre, je viens donc demander un peu d'aide et explication ici même :)
Alors premier cas de figure (où ca fonctionne), j'ai une page search.php :
Cette page sert à appeler à récupérer des données en fonctions des mots clé saisie dans la barre de rechercheCode:
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 <?php $errMessage = ""; $typeSearch = "Materiel"; $action = $_SERVER["REQUEST_URI"]; $link = array(/*0 => 'Client',*/ 0 => 'Materiel', 1 => 'Fournisseur', 2 => 'Affaire'); $toDisplay = ""; $tiret = ""; $search = ""; $marginTopDiv = ""; if (isset($_POST['search'])) $search = $_POST['search']; $useSaparator = false; $nb = count($link) - 1; $i = 0; foreach ($link as $value) { $tiret = " "; if ($i < $nb) $tiret = " - "; $toDisplay .= "<form name='$value' class='formSearch' action='$action' method='post' onclick='sendForm(this)'>"; if (isset($_POST["affaire"])) $toDisplay .= "<input type='hidden' name='affaire' id='affaire' value='". $_POST["affaire"] ."'>"; $toDisplay .= "<input type='hidden' name='type' value='". $value ."'>"; $toDisplay .= "<input type='hidden' id='search' name='search' value='". $search ."'>"; $toDisplay .= "$tiret<a href='#'>{$value}</a>"; $toDisplay .= "</form>"; ++$i; } $toDisplay = ltrim($toDisplay, $tiret); if (isset($_POST["type"])) { if ($_POST["type"] == "Client" || $_POST["type"] == "Fournisseur" || $_POST["type"] == "Materiel" || $_POST["type"] == "Affaire") $typeSearch = $_POST["type"]; else $errMessage = "Merci de ne pas t'amuser avec la barre d'adresse..."; } if (isset($_GET["page"]) && $_GET["page"] == "search") { $marginTopDiv = "style='margin-top:30px;'"; } ?> <div id="errorMessage"><?php echo $errMessage; ?></div> <div class="contentTitle" <?php echo $marginTopDiv; ?>> <div class="title"> Recherche : (<?php echo $typeSearch; ?>)<span>Spécifier votre recherche par : <?php echo $toDisplay; ?></span><div class='clearBoth'> </div> </div> <div class="content" style="text-align:center; padding-top:10px;"> <form onsubmit="return getSearchDatas('<?php echo $typeSearch; ?>', '<?php echo $affaire->datas["id"]; ?>')"> <strong><?php echo $typeSearch; ?></strong> : <input class="searchBar" type="text" name="textSearch" id="textSearch" value='<?php echo $search; ?>' onkeyup="return rememberKey(this.value)"/> <button type="submit" name="submit">Lancer <img src="style/images/magnifier.png" /></button><br /> <a class="linkTooltip" id="linkTooltip" href="#">Comment rechercher ? <img src="style/images/exclamation.png" border="0"/></a> <div id="tooltip"> <em><span></span>Ceci est une barre de recherche avancée, elle vous permet de spécifier <strong>plusieurs critères</strong> de recherche !<br /> <strong>Exemple</strong>: Je recherche un <strong>nom de fournisseur</strong> sachant qu'il est situé dans le <strong>94</strong>, il suffit de tapper : "<strong>kil 94</strong>", ou "<strong>kiloutou 94</strong>". <br /> Il n'est pas indispensable de renseigner un mot clé <strong>intégralement</strong> ;)<br /> Ajouter <strong>autant</strong> de mots clés afin de <strong>limiter</strong> la recherche.</em> </div> </form> <div id="searchResult"></div> </div>
Exemple : je recherche un fournisseur du nom de "lala", en validant cette entrée je vais récupérer les donnée d'une autre page php (montrer ci-dessous), et l'affichage va se faire correctement ;)
Maintenant j'ai une autre page projet.php et dedans je fais un include de cette page "search.php" et si je refais la même recherche que tout a l'heure, j'ai un résultat tout casser, la balise form disparait, la balise </form> devient une </div> (Magiquement?).
En gros, en recherchant des fournisseurs je vais appeler en ajax une page contenant ce morceau de code :
Dans ma fonction javascript, si je fais un alert de ce qui a dans le responseText, mes balises form sont toujours présente, mais quand je fais l'alert sur la div.innerHTML, bah plus de balises form :/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 <div class='textMateriel'> <div class='titleData'> <form action='$action' method='post' onclick='sendForm(this)'> <h2>#$i <span> <div class='ficheClientLink' style='margin-top:0px;'> <a href='#'>Voir cette fiche en détail</a> </div> <input type='hidden' value='" . htmlentities($data['id']) . "' name='modification' />"; if (isset($_POST['affaire'])) $mess .= "<input type='hidden' name='affaire' value='". $_POST["affaire"] ."'>"; $mess .= " </span> </h2> </form> </div> <div class='left'> <ul> <li><strong>Société : </strong><span>" . htmlentities($data['societe']) . "</span></li> <li><strong>Code client : </strong> <span>" . htmlentities($data['code_fournisseur']) . "</span></li> <li><strong>Adresse 1 : </strong> <span>" . htmlentities($data['adresse1']) . "</span></li> <li><strong>Code postal : </strong> <span>" . htmlentities($data['cp']) . "</span></li> </ul> <ul> <li><strong>Ville : </strong> <span>" . htmlentities($data['ville']) . "</span></li> <li><strong>Téléphone : </strong> <span>" . htmlentities($data['telephone']) . "</span></li> <li><strong>Fax : </strong> <span>" . htmlentities($data['fax']) . "</span></li> <li><strong>Site Web : </strong> <span>" . htmlentities($data['site_internet']) . "</span></li> </ul> </div> <div class='clearLeft'></div> </div>
Sous iexplorer 7 ca fonctionne niquel, mais sous FF soucis...(Et pourtant je test d'abord sous FF :p)
En espérant que quelqu'un puisse m'aider ;)
Je reste bien sur pas très loin pour plus d'informations :)
EDIT : Je pense savoir, d'où viendrait le problème, une balise mal fermer somewhere... Vu qu'avec plusieur résultat, seul le premier pète :/
EDIT 2 : Fixed, c'était bien une balise présente dans la page ou j'inclue le "search.php" qui était bien fermer, mais trop tôt :), comme quoi une nuit de sommeil permet d'avoir les idées clair le lendemain :) merci encore à tous ^^