Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diogo Alexsander

[Resolvido] DOMDocument

Recommended Posts

Boa tarde, pessoal.

 

To tendo um problema com um sistema que estou desenvolvendo.

 

É o seguinte, eu utilizo a classe DOMDocument para gerar o HTML de uma tabela que vai simular um DataGrid.

 

Pois bem, quando toda a estrutura da tabela está pronta, eu dou um echo no meu objeto DOM, invocando o método saveHTML();

 

Exemplo:

$dom->saveHTML();

 

Isso funciona perfeitamente, quando a grid contém só strings. O problema é que eu preciso adicionar um link em uma das colunas, e ao invés de gerar um link da forma correta na grid, ele me mostra o código HTML.

 

Alguém já passou por isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está fazendo?

 

Veja um exemplo:

<?php

$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->formatOutput = true;
$DOMDocument->preserveWhiteSpace = false;

$html  = $DOMDocument->createElement( 'html' );
$head  = $DOMDocument->createElement( 'head' );
$title = $DOMDocument->createElement( 'title' );
$body  = $DOMDocument->createElement( 'body' );

$title->appendChild( new DOMText( 'Title' ) );
$head->appendChild( $title );

$link  = $DOMDocument->createElement( 'a' );
$link->appendChild( new DOMText( 'Clique Aqui' ) );
$atributo = $DOMDocument->createAttribute( 'href' );
$atributo->value = 'meu_link.php';

$link->appendChild( $atributo );
$body->appendChild( $link );
$html->appendChild( $head );
$html->appendChild( $body );
$DOMDocument->appendChild( $html );

echo $DOMDocument->saveHTML( );
exit;

 

Saída:

<html>
 <head>
   <title>Title</title>
 </head>
 <body>
   <a href="meu_link.php">Clique Aqui</a>
 </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você está fazendo?

 

Veja um exemplo:

<?php

$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->formatOutput = true;
$DOMDocument->preserveWhiteSpace = false;

$html  = $DOMDocument->createElement( 'html' );
$head  = $DOMDocument->createElement( 'head' );
$title = $DOMDocument->createElement( 'title' );
$body  = $DOMDocument->createElement( 'body' );

$title->appendChild( new DOMText( 'Title' ) );
$head->appendChild( $title );

$link  = $DOMDocument->createElement( 'a' );
$link->appendChild( new DOMText( 'Clique Aqui' ) );
$atributo = $DOMDocument->createAttribute( 'href' );
$atributo->value = 'meu_link.php';

$link->appendChild( $atributo );
$body->appendChild( $link );
$html->appendChild( $head );
$html->appendChild( $body );
$DOMDocument->appendChild( $html );

echo $DOMDocument->saveHTML( );
exit;

 

Saída:

<html>
 <head>
   <title>Title</title>
 </head>
 <body>
   <a href="meu_link.php">Clique Aqui</a>
 </body>
</html>

 

Obrigado Carlos Coelho.

 

Estava fazendo quase igual você. A diferença é que eu estava tentando colocar o link em uma 'td', só que eu estava criando o link com um novo DOM Object. Olhando o seu código, me caiu a ficha, e eu não sei porque não estava usando o mesmo DOM Object desde o começo.

Olhando o seu código pude perceber onde foi que eu errei.

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.