$('#myelementid').fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200);
full credit to this post on stackoverflow
http://stackoverflow.com/questions/275931/how-do-you-make-an-element-flash-in-jquery
$('#myelementid').fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200);
full credit to this post on stackoverflow
http://stackoverflow.com/questions/275931/how-do-you-make-an-element-flash-in-jquery
$this->response->body(json_encode($msg)); return $this->response;
Method2:
$this->set('msg', $msg); $this->set('_serialize', ['msg']);
//controller action
public function test(){ $msg="this is a call"; //method 1 (chose a method) $this->response->body(json_encode($msg)); return $this->response; //method 2 $this->set('msg', $msg); $this->set('_serialize', ['msg']); } //javascript function call in view function delete_all(){ jQuery.ajax({ type:'POST', async: true, cache: false, url:'mycontroller/test.json', success: function(response){ //success console.log(response); }, error: function(response){ console.log(response); } }); }
This is just a quick example of how to send a reply from your controller to n AJAX request.
//you controller
public function testajax(){ $this->set('text', 'its a SUCCESS'); $this->set('_serialize', ['text']); }
//javascript function
<script> function test(){ $.ajax({ type:"POST", url:"http://localhost/[YOURCAKEAPPNAME]/[CONTROLLERNAME]/testajax.json", async:true, success: function(response){ //console.log('success'); console.log(response.text); }, error: function (response) { console.log('error'); console.log(response.text); } }); } </script>
A link to call the function;
<li><?= $this->Html->link(__('updateResult'), 'javascript:test()') ?></li>
The following example shows how to submit a form with AJAX to a Cakephp controller;
Jquery Javascript Funtion;
/* sends the form to the controller, ensure form fields names match up with escpected values. */ function testajaxaddv3(){ jQuery.ajax({ type:'POST', async: true, cache: false, url: 'http://localhost/mycakeapp/messages/ajaxadd', success: function(response) { //success console.log(response); }, error: function(response) { console.log(response); }, data:jQuery('form').serialize() }); }
CakePHP 3 Form:
<?= $this->Form->create(null) ?> <fieldset> <legend><?= __('Add Quizzes Answer') ?></legend> <?php echo $this->Form->input('message'); ?> </fieldset> <?= $this->Form->end() ?> </div> <?php echo $this->Form->button('save',['onclick'=>'testajaxaddv3()']); ?>
How to create a javascript function to send a AJAX request to your cakePHP controller action;
function testajaxadd(question_id,answerindex){ var mydata=new Object(); mydata.question_id=question_id; mydata.answerindex=answerindex; jQuery.ajax({ type:'POST', async: true, cache: false, data: mydata, url: 'http://localhost/myquiz/questions-answers/ajaxadd', success: function(response) { //success console.log(response); }, error: function(response) { console.log(response); } }); }
Cakephp controller action;
public function ajaxadd(){ $questionsAnswer = $this->QuestionsAnswers->newEntity(); if ($this->request->is('ajax')) { $questionsAnswer = $this->QuestionsAnswers->patchEntity($questionsAnswer, $this->request->data); // Added this line which makes the record belong to the logged in user $questionsAnswer->user_id = $this->Auth->user('id'); if ($this->QuestionsAnswers->save($questionsAnswer)) { $status['msg']="Saved Record"; } else { $status['msg']="Error Saving Record"; } //return the message to js function $this->response->body(json_encode($status)); return $this->response; } }
echo $this->Html->link('test clear','javascript:cleartable()');
echo $this->Form->button('new size', ['onclick' => 'myfunction()']); <script> function myfunction(){ //do stuff } </script>
One of the key things youll do with cakephp is to ensure that when your saving data that the user logged in owns thats you save their user_id as well.
the simpliest way to do this is with one line of code added to your add action;
Sample Code from a Controller called Joke;
public function add() { $joke = $this->Jokes->newEntity(); if ($this->request->is('post')) { $joke = $this->Jokes->patchEntity($joke, $this->request->data); // Added this line, set the userid to the logged in user $joke->user_id = $this->Auth->user('id'); if ($this->Jokes->save($joke)) { $this->Flash->success(__('The joke has been saved.')); return $this->redirect(['action' => 'index']); } else { $this->Flash->error(__('The joke could not be saved. Please, try again.')); } } $users = $this->Jokes->Users->find('list', ['limit' => 200]); $jokescategories = $this->Jokes->Jokescategories->find('list', ['limit' => 200]); $this->set(compact('joke', 'users', 'jokescategories')); $this->set('_serialize', ['joke']); }
Open up your command prompt in your app/bin folder;
enter the command;
//non vendor specified cake bake plugin ContactManager //vendor specified cake bake plugin Gmcd/ContactManager
Baking the controller for your plugin;
//no vendor cake bake controller --plugin ContactManager Contacts cake bake controller --plugin Gmcd/ContactManager Contacts
Baking the Model View and Controller:
cake bake all --plugin Gerrymcdonnell/jokes jokes
Read more here:
http://book.cakephp.org/3.0/en/plugins.html#creating-your-own-plugins