2010-11-17 11 views
7

Hola, soy un novato que trabaja con jQuery y Ajax. Estoy tratando de enviar datos al servidor utilizando el método Jquery POST. Y los datos que paso son una cadena. Ahora no puedo entender cómo paso los datos y cómo recupero los datos. Intenté buscar artículos para mi problema, pero no encontré ninguno. Creo que mi problema es muy básico.Pasar datos de jQuery a PHP para una publicación de Ajax

if (1)//validateStep(step) 
{ 
if(step==1) 
{ 
var data = document.getElementById('hiddenContact').value; 
$.post('/callcenter/admin/postContacts', data); 
} 
} 

Ahora voy a publicar el código de mi mensaje de acción de contacto, que no es una gran cosa.

function postContacts() 
{ 
$this->autoRender = false; 
echo '<script>console.log("post contacts");</script>'; 
} 

Pero no estoy seguro de cómo se deben recuperar los datos. Cualquier ayuda es apreciada. Estoy usando CakePHP, así que he tenido que usar autoRender = false; que hace que la vista sea opcional.

Respuesta

16

Con jQuery post puede definir una función de devolución de llamada que se ejecuta cuando se devuelven los datos:

$.post('/callcenter/admin/postContacts', data, function(returnedData) { 
    // do something here with the returnedData 
    console.log(returnedData); 
}); 

El data debería ser en la forma:

{name: 'value', anotherName: 'another value'} 

lo que equivale a los nombres puestos en el PHP final accesible en PHP simple como este:

echo $_POST['name'];   # prints "value" 
echo $_POST['anotherName']; # print "another value" 
2

Se supone que el parámetro param es un objeto que tiene claves y valores.

var data = { 
    hiddenContact: document.getElementById('hiddenContact').value 
} 
$.post('/callcenter/admin/postContacts', data); 

Luego, en PHP se puede recuperar de esta manera:

$hiddenContact = $_POST["hiddenContact"]; 

No soy un gran usuario de CakePHP, pero creo que la versión de CakePHP es así:

$hiddenContact = $this->params["hiddenContact"]; 
1
//javascript 
if(step==1) 
{ 
    var data = {'MyFieldName':document.getElementById('hiddenContact').value}; 
    $.post('/callcenter/admin/postContacts', data, function(returnData){ 
     alert('The server said ' + returnData); 
    }); 
} 

//read the post in php 
<? 
    echo 'Your ajax post data was '. $_POST['MyFieldName']; 
?> 
Cuestiones relacionadas