2

私は zend フレームワークと ajax の初心者です ajax と zend で簡単なコードを実行しようとしています。ボタンを押すと div 、テキスト、ボタンが含まれますが、ボタンを押すとテキストの値が div に入力されます何も起こらなかった:S これが私のコードです 助けてください

これがレイアウトです

/index/test.phtml


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"       type="text/javascript"></script>

<!--for display text and submit fields i use viewHelpers it's very comfortable  and       easy way.-->
<div class="submit_area">
  <?php echo $this->formText('message', 'empty', array('size' => 32, 'id' => 'message')) ?>
  <?php echo $this->formSubmit('submitTo', 'submit', array('id' => 'submitTo')) ?>
  <div class="show-msg"></div>
</div>

<script >
//for send data i'll use jquery library
$(document).ready( function() {
  <?php echo "ready" ?>
  //By clicking on button submit condition makes validate on empty message 
  //unless field message will be not empty  , the programm make send data to
  //controller via ajax
  $("#submitTo").click(function() {
    var message = $('#message').val();
    if (message != '') {
      //run ajax 
      $.post('index/ajax', {'message' : message},
        //callback function
        function (respond) {
          //put respond in class show-msg                          
          $(".show-msg").html(respond);                  
        }
      );
    }                    
  });
});
</script>

--------------------------------------------

これはコントローラーのコードです


class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function checkAction()
    {
        // action body  
        $request = $this->getRequest()->getPost();

        //referring to the index
        //gets value from ajax request
        $message = $request['message'];

        // makes disable renderer
        $this->_helper->viewRenderer->setNoRender();

        //makes disable layout
        $this->_helper->getHelper('layout')->disableLayout();

        //return callback message to the function javascript
        echo $message; 
    }

    public function testAction()
    {
        // action body      
    }
}
4

2 に答える 2

1

エラーが発生していますか?

あなたのコードには、間違っている可能性があることがいくつかあります。

  1. このclick()イベントはreturn false、おそらく Ajax 呼び出しが行われる前にフォームが送信されるとは限りません。

  2. Ajax URL/index/ajaxIndexController、 にajaxAction. post()リクエストを に向ける必要があり/index/checkます。

ContextSwitch と AjaxContextも参照してください。

確かに@Boulevardが言ったことも正しいです。それechoはあなたのJSを壊します。

于 2013-09-29T09:05:18.790 に答える
0

JavaScript 構文に関するコード エラーです。この行を削除してみてください:

  <?php echo "ready" ?>

JavaScript の終了タグを追加します。

</script>
于 2013-09-29T09:03:30.140 に答える