Извлечение данных, представленных через плагин JQuery Form в cakePHP - PullRequest
0 голосов
/ 23 июня 2009

Я использую плагин форм JQuery.

Как я могу получить объявленное значение в контроллере cakephp?

Мой код такой:

<?php echo $form->create('Result',array('action'=>'submit'));?>
//some input text fields,texarea fields
<?php echo $form->end('submit');?>

<script>
  $(document).ready(function(){
    var options = { 
      beforeSubmit:  showRequest,  // pre-submit callback 
      success:       showResponse,  // post-submit callback 
      url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
      type: 'POST',
      resetForm: true        // reset the form after successful submit 
    }; 
    $('#ResultSubmit1Form').submit(function() { 
      $(this).ajaxSubmit(options); 
      return false; 
    }); 
  });//ready 

  // pre-submit callback 
  function showRequest(formData, jqForm, options) { 
    var queryString = $.param(formData); 
    alert('About to submit: \n\n' + queryString); 
    $.ajax({
      type: "POST",
      url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1",
      data: "str="+queryString,
      success: function(msg){
        alert( "Data Saved: " + msg);
      }
    }); 
    return true; 
  } 

  // post-submit callback 
  function showResponse(responseText, statusText)  { 
    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
      '\n\nThe output div should have already been updated with the responseText.'); 
  }

</script>

И в моем контроллере CakePHP:

<?php
  class ResultsController extends AppController
  {
    var $name = 'Results';
    var $helpers=array('Html','Ajax','Javascript','Form');
    var $components = array( 'RequestHandler','Email');
    var $uses=array('Form','User','Attribute','Result');
    function submit($id = null) {
      $str=$_POST['str'];
      echo "POSTED value ".$str;
    }
  }

отображается только _method=POST вместо _method=POST&name=x&age=22.

Но если я использовал $_POST['Name']; (где Name - это атрибут name поля ввода1), он отображает x, который я набрал в поле ввода1.

Как мне получить то, что я хочу?

1 Ответ

0 голосов
/ 23 июня 2009

вы можете получить значения в вашем контроллере, открыв $ this-> params ['form'].

поэтому для поля «Имя» оно должно указываться в $ this-> params ['form'] ['Name'].

плагин все еще отправляет данные как POST, единственная разница в том, что они были ajaxed. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...