• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

240
Views
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 3 years ago · Juan Pablo Isaza
2 answers
Answer question

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 3 years ago · Juan Pablo Isaza Report

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 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error