简体   繁体   中英

Pass data from jQuery to PHP for an ajax post

Hello I am a newbie working with jQuery and Ajax. I am trying submit data to the server using Jquery POST method. And the data that I am passing is a string. Now I am unable to understand how do I pass the data and how do I retrieve the data. I have tried searching for articles for my problem, but I have found none. I believe my problem is very basic.

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

Now I'll post the code for my postContacts action, which isn't a big thing.

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

But I am confused as to how the data has to be retrieved. Any help is appreciated. I am using cakePHP, so I have had to use autoRender=false; which makes the view optional.

With jQuery post you can define a callback function which is executed when the data is returned:

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

The data should be in the form:

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

which equates to the post names on the PHP end accessible in plain PHP like this:

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

The data param is supposed to be an object that has keys and values.

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

Then in PHP you can retrieve it like this:

$hiddenContact = $_POST["hiddenContact"];

I'm not a big CakePHP user but I believe the CakePHP version is like this:

$hiddenContact = $this->params["hiddenContact"];
//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'];
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM