Как PHP appendChild в ID? - PullRequest
       99

Как PHP appendChild в ID?

0 голосов
/ 28 апреля 2020

Я пытаюсь добавить ассоциативный массив на мою страницу. Я много искал в здесь , но когда я пробую их ответы, он копирует мою страницу столько раз, сколько есть значений.

Вот мой код:

$reponse = $bdd->query('SELECT nom FROM `scores`');

while ($donnees=$reponse->fetch(PDO::FETCH_ASSOC)){
    foreach($donnees as $clef => $valeur){

        $html = file_get_contents('tableau.php');
        libxml_use_internal_errors(true);
        $doc = new DOMDocument();
        $doc->loadHTML($html);
        $descBox = $doc->getElementById('noms');
        $appended = $doc->createElement('li', $valeur);
        $descBox->appendChild($appended);
        echo $doc->saveHTML();

    }
};

Как я могу сделать это без увеличения моей страницы?

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Вы должны сделать l oop только в той части, где li создан и добавлен:

$html = file_get_contents('tableau.php');
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($html);
$descBox = $doc->getElementById('noms');

$reponse = $bdd->query('SELECT nom FROM `scores`');
while ($donnees=$reponse->fetch(PDO::FETCH_ASSOC)){
    foreach($donnees as $clef => $valeur){
        $appended = $doc->createElement('li', $valeur);
        $descBox->appendChild($appended);

    }
}

echo $doc->saveHTML();

0 голосов
/ 29 апреля 2020

ОК. С помощью Павла Мусила я нашел ответ на своей многоходовой странице:

Я разделил свою страницу на 3 файла:

Первый просто:

<!DOCTYPE HTML>
<html lang="fr">
	<?php
		include("scores.php");
	?>
</html>

Второй код PHP:

	<?php
		try {
			$bdd=new PDO('mysql:host=localhost;dbname=scores','root','');
		}
		catch(Exception $e){
			die('erreur :'.$e->getMessage());
		};

		$bdd->query("SET NAMES UTF8");
		$reponse = $bdd->query('SELECT nom FROM `scores`');
		$html = file_get_contents('tableauHtml.html');
		$doc = new DOMDocument();
		$doc->loadHTML($html);
		$descBox = $doc->getElementById('noms');

		$reponse = $bdd->query('SELECT nom FROM `scores`');
		while ($donnees=$reponse->fetch(PDO::FETCH_ASSOC)){
		    foreach($donnees as $clef => $valeur){
		        $appended = $doc->createElement('li', $valeur);
		        $descBox->appendChild($appended);
		    }
		};

		echo $doc->saveHTML();
	?>

И последний - HTML Я хочу вставить свой LI:

	<head>
    ...
	</head>

	<body>
		<div id='all'>
			<h1>Ze Kouiz</h1>
			<div id="noms">

			</div>
      ...
	</body>

И это работает!

...