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

187
Visualizações
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 Respostas
Responde à pergunta

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 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
Recomende algumas ofertas para mim
Preciso de ajuda