Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

302
Vistas
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.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

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>
about 4 years ago · Juan Pablo Isaza Denunciar

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 .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda