2017-08-22 10 views
-1

ケーキのデータを保存する方法を教えてください。別の例を教えてください。実際に私はブログにコメントを投稿しようとしています。ケーキのデータをケーキに保存せずにページを更新する

// My index.ctp page code is like this . please suggest the modifications. 

<?php 
echo $this->Form->create('Test', array('url' => array('controller' => 'tests', 'action' => 'index'))); 
echo $this->Form->input('comment', array('type' => 'text')); 
echo $this->Form->submit('submit', array('id' => 'btPrice')); 
echo $this->Form->end(); 
?> 

<div id="dsg"> 

</div> 

<?php echo $this->Html->script('jquery-3.2.1.min'); ?> 
<script> 
    $(document).ready(function() { 
//do sth when click on #btPrice 
     $('#btPrice').click(function() { 
      $.ajax({ 
       type: "POST", 
       //the function u wanna call 
       url: "<?php echo $this->Html->url(array('controller' => 'tests', 'action' => 'index')); ?>", 
       /* data you wanna pass, as your $param1 is serverSide variable, 
       you need to first assign to js variable then you can pass: 
       var param1 =  '<?php echo $param1; ?>';*/ 
       data: {myVal: 'Success!'}, 
       success: function() { 
        alert('AjaX Success') 
       }, 
       error: function() { 
        alert('AjaX Failed') 
       } 
      }); 
     }); 
    }); 
</script> 

My controller page code looks like this 

public function index() { 

     if($this->request->is('post')) { //pr($this->request->data);exit; 
      $myVal = $this->request->data; 
      $data = $_POST['myVal']; 
      pr($myVal);exit; 
     $this->Test->save($data); 
     $this->autoRender = false; 
     } 
    } 

私は以前これをしていません。私が使用しているコードは、お使いのコントローラでこのcomment変数値およびプロセスを取得しますどこか

答えて

0

ステップ1

data: {myVal: 'Success!'}, 
//Get your input field `comment` and pass in above line. 

ステップ2 からコピーしました。

ステップ3 成功時には、あなたが成功を印刷したり、

ステップ4 あなたは条件を追加することができます失敗する可能性がその成功、警告、成功そうでない場合は、いくつかの場合にエラー。

私はこれが実行可能になることを願っています。

0
<script> 
    $('#btPrice').click(function() { 
     var comment = $("#comment_input_id").val(); 
     $.ajax({ 
      type: "POST", 
      //the function u wanna call 
      url: "<?php echo $this->Html->url(array('controller' => 'tests', 'action' => 'index')); ?>", 
      data: {comment: comment/* you can send additional data as post id etc to be saved */}, 
      dataType: 'json', 
      success: function (response) { 
       if (response.success) { 
        // do something after success 
       } else { 
        // show response.message 
       } 
      }, 
      error: function() { 
       alert('AjaX Failed') 
      } 
     }); 
    }); 
</script> 

ここコントローラー・コード

<?php 

function index() { 
    $this->autoRender = false; 

    $response["success"] = false; 
    $response["message"] = "Server error"; 
    if ($this->request->is('post')) { 
     $data = array(); 
     $data["comment"] = $this->request->data["comment"]; 
     if ($this->Test->save($data)) { 
      $response["success"] = true; 
      $response["message"] = "Saved successfully"; 
     } 
    } 

    echo json_encode($response); 
    die; 
} 
?> 
関連する問題