Problème de récupération de données

Problème de récupération de données - PHP - Programmation

Marsh Posté le 15-05-2006 à 10:10:21    

Bonjour tout le monde !
 
Je fais actuellement ma première admin et il me faut récupérer le contenu de deux balises <div></div> ayant chacune un id ( si cela peut aider ).
 
Y a-t-il un moyen plus simple que de lire chaque ligne après la balise ouvrante et cela jusqu'à la balise fermante ?
 
Merci à tous.

Reply

Marsh Posté le 15-05-2006 à 10:10:21   

Reply

Marsh Posté le 15-05-2006 à 10:50:00    

Contexte ? D'où viennent les div ? De la page courante ? Pas faisable en javascript ?
 
Bref, précise un peu.

Reply

Marsh Posté le 15-05-2006 à 10:58:14    

C'est simple, j'ai une page 01.htm, dans cette page il y a <div id="header">contenu à récupérer n°1</div> et <div id="corps">contenu à récupérer n°2</div>.
 
Je souhaite afficher ces contenus dans deux balises ( dans la page 01Admin.php ) <textarea id="header" name="header">print 'contenu 1';</textarea> et <textarea id="corps" name="corps">print 'contenu 2';</textarea>.
 
Je transmet ensuite les données à 01Modif.php.
 
Comment dois-je faire ?

Reply

Marsh Posté le 15-05-2006 à 10:59:48    

en php comme en js tu peux te servir du dom pour récuperer le contenu d'un noeud...  
Comme te l'a dit Sielfried, sans plus de précisition difficile de t'aider!

Reply

Marsh Posté le 15-05-2006 à 11:04:35    

donc tu as répondu entre temps...
Si je comprends bien dans la page 01Admin.php tu as:

Code :
  1. ...
  2. <div id="header">...</div>
  3. <div id="corps">...</div>
  4. ...


Comment sont "remplis" ses 2 divs?
Ensuite lorsque tu cliques "quelque part" tu vas sur la page 01Modif.php ou tu souhaites afficher dans 2 textareas le contenu des balises précédentes.
 

  • Si tu as un formulaire( admettons en post) dans 01Admin, le plus simple:

- fais 2 inputs hidden, un nommé header l'autre corps
- dans 01Modif.php, tu récupères les données transmises via $_POST['header'] and $_POST['corps'] et tu les "printes" dans tes textareas.

  • Si tu n'en as pas, montre nous un peu le code de 01Admin.

Reply

Marsh Posté le 15-05-2006 à 12:39:27    

C'est presque cela, les div sont dans 01.htm où il n'y a aucun et ne doit y avoir acun formulaire.
 
01.htm :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Largeur fixe&nbsp;: 750 / pas de menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" media="screen" href="style01.css" />
</head>
<body>
<div id="conteneur">
 
<div id="header">
[i]contenu à récupérer[/i]
</div>
 
<div id="corps">
[i]contenu à récupérer[/i]
</div>
 
<div id="pied">Modèle CNeo</div>
 
</div>
</body>
</html>


01Admin.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Largeur fixe&nbsp;: 750 / pas de menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {margin: 0; padding: 0;}
textarea {font-family: Verdana, Helvetica, sans-serif; border: none;}
#conteneur {background-color: #00b440;}
#header {background-color: #00b440; width: 100%; padding: 5px 0; text-align: center; font-size: 3em;}
#corps {background-color: #ffffae; height: 375px; width: 100%; font-size: 0.8em;}
#pied {height: 23px; font-family: Verdana, Helvetica, sans-serif; font-size: 0.8em;}
p {margin: 5px 0;}
#buttons {float: right; margin-right: 50px;}
#boutons {float: right;}
-->
</style>
</head>
<body>
<div id="conteneur">
 
<?php
( $fp = fopen("01.htm", "r" ) ) or die ("Impossible de lire le fichier" );
$header = "";
$corps = "";
                                 !!! code de récupération de contenu !!!
print '<form action="01Modif.php" method="post">
<textarea name="header" id="header">'
.$header
.'</textarea>
 
<textarea id="corps" name="corps">
'.$corps
.'</textarea>
 
<div id="boutons"><input type="reset" value="Rétablir" /><input type="submit" value="Valider" /></div><div id="buttons"><input type="button" value="Insérer un lien" onclick="nlien()" title="[a]le nom du lien[/a]" /></div>
</form>';
fclose($fp);
?>
 
<div id="pied">Modèle CNeo</div>
 
</div>
</body>
</html>


et 01Modif.php :

<?php
unlink("01.htm" );
touch("01.htm" );
( $fp = fopen("01.htm", "w" ) ) or die ("Impossible de modifier le fichier" );
fwrite ($fp, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Largeur fixe&nbsp;: 750 / pas de menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" media="screen" href="style01.css" />
</head>
<body>
<div id="conteneur">
 
<div id="header">
'.$_POST['header'].'
</div>
 
<div id="corps">
'.$_POST['corps'].'
</div>
 
<div id="pied">Modèle CNeo</div>
 
</div>
</body>
</html>');
fclose ($fp);
header ("Location:01.htm" );
?>


 
Je veux bien un avis sur 01Modif, pensez-vous qu'il faille "l'intégrer" à 01Admin.


Message édité par CNeo le 15-05-2006 à 12:40:27
Reply

Marsh Posté le 15-05-2006 à 12:57:42    

UP !

Reply

Marsh Posté le 15-05-2006 à 13:24:17    

donc comme je le disais via DOM:


Ensuite tu arrêtes de upper toutes les 15 mins, ça sert à rien et ça fait pas répondre les gens plus vite

Reply

Marsh Posté le 15-05-2006 à 15:05:44    

anapajari a écrit :

donc comme je le disais via DOM:


Ensuite tu arrêtes de upper toutes les 15 mins, ça sert à rien et ça fait pas répondre les gens plus vite


 
Merci !

Reply

Marsh Posté le 16-05-2006 à 14:50:12    

Cela ne marche pas, il me dit que je ne peut pas appeler une class qui n'existe pas.
 
Est-ce parce que j'ai EasyPHP ou dois-je télécharger qqch et l'inclure ensuite comme en C ?


Message édité par CNeo le 16-05-2006 à 15:21:09
Reply

Marsh Posté le 16-05-2006 à 14:50:12   

Reply

Marsh Posté le 16-05-2006 à 15:19:00    

montre ton code ...

Reply

Marsh Posté le 19-05-2006 à 11:20:26    

j'ai essayé :

<?php
$doc = DOMDocument::loadHTMLFile("filename.html" );
$header = $doc->getElementById('header')->nodeValue;
print '<form action="01Modif.php" method="post">
<textarea name="header" id="header">
'.$header.'
</textarea>
 
<textarea id="corps" name="corps">
'.$corps.'
</textarea>
 
<div id="boutons"><input type="reset" value="Rétablir" /><input type="submit" value="Valider" /></div><div id="buttons"><input type="button" value="Insérer un lien" onclick="nlien()" title="[a]le nom du lien[/a]" /></div>
</form>';
?>


et :


<?php
$doc = new DomDocument;
$doc->validateOnParse = true;
$doc->Load('01.htm');
$header = $doc->getElementById('header')->nodeValue;
$corps = $doc->getElementById('corps')->nodeValue;
<textarea name="header" id="header">
'.$header.'
</textarea>
 
<textarea id="corps" name="corps">
'.$corps.'
</textarea>
 
<div id="boutons"><input type="reset" value="Rétablir" /><input type="submit" value="Valider" /></div><div id="buttons"><input type="button" value="Insérer un lien" onclick="nlien()" title="[a]le nom du lien[/a]" /></div>
</form>';
?>


 et cela ne marche pas avec toujours une fatal error : on ne peut pas appeler une class non définie.


Message édité par CNeo le 19-05-2006 à 12:28:12
Reply

Marsh Posté le 19-05-2006 à 14:09:06    

UP pour le week-end !

Reply

Marsh Posté le 22-05-2006 à 08:01:17    

re UP !

Reply

Marsh Posté le 22-05-2006 à 09:38:46    

faut que tu valides ton flux avec une DTD si tu veux utiliser getElementById ( c'est marqué dans la doc hein [:spamafote] ).
Comme ça risque d'etre compliqué pour toi, utilises getElementsByTagName et getAttribute pour trouver le noeud que tu cherches.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed