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 recherche
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
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 : 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 <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 ^^
Partager