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

186
Visualizações
Enviar matriz con Ajax a script PHP en wordpress

Estoy tratando de enviar una matriz desde un archivo JS a un archivo PHP en el servidor, pero cuando intento usar la matriz en php, no obtuve nada.

Esta es mi función en JS:

 var sortOrder = []; var request = function() { var jsonString = JSON.stringify(sortOrder); $.ajax({ type: "POST", url: '<?php echo get_template_directory_uri(); ?>/MYPAGE.php', data: { sort_order : jsonString }, cache: false, success: function() { alert('data sent'); } }) };

y este es mi archivo php MYPAGE.php:

 <?php $arrayJobs = json_decode(stripslashes($_POST['sort_order'])); echo($arrayJobs);?>

Esta es la primera vez que uso ajax y, sinceramente, también estoy confundido con la URL porque estoy trabajando en una plantilla en wordpress. ¡Incluso si no uso json, no funciona!

Estos son los ejemplos que estoy viendo:

Enviar matriz con Ajax a script PHP

Pasar una matriz de JavaScript a PHP a través de jQuery $ .ajax

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Primero, ¿dónde está ese código javascript? Debe estar en un archivo .php para que se ejecute el código php (función de wordpress).

En segundo lugar, ¿cómo sabe que no se reciben datos en el back-end? Está enviando una solicitud AJAX y no recibe el resultado aquí. Si lee la documentación en $.ajax , verá que la respuesta del servidor se pasa a la devolución de llamada success .

 $.ajax({ type: "POST", url: '<?php echo get_template_directory_uri(); ?>/MYPAGE.php', data: { sort_order : jsonString }, cache: false, success: function(responseData) { // consider using console.log for these kind of things. alert("Data recived: " + responseData); } })

Verá todo lo que haga echo del código PHP en esta alerta. Solo entonces puedes decir si no recibiste nada.

Además, json_decode devolverá un objeto JSON (o una matriz si se lo indica). No puedes echo como lo has hecho aquí. En su lugar, debe usar print_r para esto.

 $request = json_decode($_POST['sort_order']); print_r($request);

Y creo que sort_order en el código javascript está vacío solo para este ejemplo y en realidad estás enviando algo en tu código real, ¿verdad?

over 4 years ago · Santiago Trujillo Relatório

0

el problema está en su url, javascript no puede interpretar las etiquetas de php, lo que le sugiero es pasar el "get_template_directory_uri()" como una variable de la página principal así:

 <script> var get_template_directory_uri = "<?php get_template_directory_uri() ?>"; </script>

y después, use esta variable en la propiedad url.

Buena suerte.

Espero que ayude

over 4 years ago · Santiago Trujillo 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