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

185
Vistas
No se pueden mostrar los parámetros de obtención

Estoy tratando de mostrar los parámetros de una búsqueda. Desde buscar, llamo a un script php que pasa los parámetros que quiero mostrar.

El código JavaScript:

 const fichero = "/proves/php/accion_formulario.php"; let tp_curso = document.getElementById("actualizar_nombre").value; let vr_curso = document.getElementById("version_lenguaje").value; let pr_curso = document.getElementById("programa_curso").value; let fp_curso = document.getElementById("ficheros_curso").value; let vp_curso = document.getElementById("videos_curso").value; let respuesta = fetch(fichero, { method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: 'nom=tp_curso&versio=vr_curso&programa=pr_curso&fitxers=fp_curso& &fitxers=fp_curso&videos=vp_curso&ncurs=curso_actualizar', headers: {"Content-type": "application/text; charset=UTF-8"} }) .then(respuesta => respuesta.text()) .then(respuesta => { alert(respuesta); }) .catch(error => alert("Se ha producido un error: " + error));

El código php:

 $this -> n_curso = $_POST["nom"]; $this -> titulo_curso = $_POST["versio"]; $this -> version_curso = $_POST["programa"]; $this -> programa_curso = $_POST["fitxers"]; $this -> dir_ficheros_curso = $_POST["videos"]; $this -> dir_videos_curso = $_POST["ncurs"]; $this -> params[0] = $this -> n_curso; $this -> params[1] = $this -> titulo_curso; $this -> params[2] = $this -> version_curso; $this -> params[3] = $this -> programa_curso; $this -> params[4] = $this -> dir_ficheros_curso; $this -> params[5] = $this -> dir_videos_curso; print_r($this -> params);

Lo que expongo es una matriz vacía:

 Array ( [0] => [1] => [2] => [3] => [4] => [5] => )

Leí esta publicación pero no pude solucionar el problema.

¿Qué estoy haciendo mal?

Gracias

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

0

Su objeto literal de parámetros contiene los headers clave dos veces, lo que toma el último valor (que desafortunadamente ya no es un error de sintaxis ). Estás enviando application/text; charset=UTF-8 en lugar de application/x-www-form-urlencoded para Content-Type , por lo que PHP no analizará los parámetros como espera.

Para solucionarlo, utilice

 fetch(fichero, { method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: '…', }) .then(respuesta => respuesta.text()) .then(respuesta => { alert(respuesta); }) .catch(error => alert("Se ha producido un error: " + error));

También tenga en cuenta que su body es actualmente una cadena codificada, sin tener en cuenta las variables. Para hacer esto necesitarías

  • use una cadena de plantilla (o concatenación de cadenas) con escapar de los valores usted mismo:

     body: `nom=${encodeURIComponent(tp_curso)}&versio=${encodeURIComponent(vr_curso)}&…`,
  • use un objeto URLSearchParams :

     body: new URLSearchParams({nom: tp_curso, versio: vr_curso, …}),
  • usar un objeto FormData . Este es el más fácil si tiene un <form> para todos los elementos de entrada y cada <input> tiene el atributo de name adecuado (tal como lo usaría al enviar el formulario de forma nativa, sin XHR/ fetch ):

     body: new FormData(document.getElementById('accion_form')),
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