Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
>
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.
Como você está fazendo?
Veja um exemplo:
Saída: