Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

187
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!