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

182
Vistas
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

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

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?

about 4 years ago · Santiago Trujillo Denunciar

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

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