7

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.

3 Answers 3

17

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"
Sign up to request clarification or add additional context in comments.

1 Comment

yes but how do you send back the JSON from the controller to the .post function being called in thew view?
2

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"];

Comments

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'];
?>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.