Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

347
Visualizações
Cómo obtener y pasar una cadena XML en php a java script desde mysql

Entonces obtuve este código:

 <input type='button' value='clickme' onclick='download(\"" . $rowtable['Protocolo'] . ".xml\",\"" . $rowtable['XML']. "\");'/></input> <script> function download(filename, text) { var pom = document.createElement('a'); pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); pom.setAttribute('download', filename); if (document.createEvent) { var event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); pom.dispatchEvent(event); } else { pom.click(); } } </script>

Obtiene 2 resultados de mi base de datos que es una cadena (protocolo) y un TEXTO (XML). Pero la cuestión es que mis datos de TEXTO (XML) se ven así:

 <?xml version="1.0" encoding="UTF-8"?><enviNFe versao="4.00" xmlns="asdasdasdasdasd"><idLote>1</idLote><indSinc>1</indSinc><NFe xmlns="asdsdasadsad">

Como puede ver, tiene muchos ". Y tiene errores, el código. Entonces mi pregunta es, ¿cómo puedo transformar todo este $rowtable['XML'] en una cadena adecuada? Entonces puedo pasarlo a el JS para poder descargarlo.

Si tiene alguna forma mejor de descargar estos datos XML de mi base de datos, también es bienvenido.

over 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede codificar el xml en php con urlencode y usar su valor directamente en javascript.

 <input type='button' value='clickme' onclick='download(\"" . $rowtable['Protocolo'] . ".xml\",\"" . urlencode($rowtable['XML']). "\");'/></input>
 <script> function download(filename, text) { var pom = document.createElement('a'); pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + text); pom.setAttribute('download', filename); if (document.createEvent) { var event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); pom.dispatchEvent(event); } else { pom.click(); } } </script>
over 4 years ago · Juan Pablo Isaza Relatório

0

Te estás perdiendo el escape para Javascript y HTML en los atributos de input del botón. El uso urlencode() o base64_encode() (en PHP) codificaría los caracteres especiales para que no puedan romper el código JS o HTML.

Sin embargo, si usa a elemento a, puede hacerlo sin JavaScript.

 <html> <body> <?php $data = '<foo>Example String</foo>'; $fileName = 'demo.xml'; ?> <a class="DownloadButton" href="data:text/plain;charset=utf8,<?=urlencode($data)?>" download="<?=htmlspecialchars($fileName)?>">Download</a> </body> </html>

Los datos se codifican y se colocan en una URL de datos .

over 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual