0

私は私にとって新しいZEND Frameworkに取り組んでおり、AJAXの場合も同じです。多くの例を試しましたが、どれも機能しません。

このコードが間違っていることを教えてください。

home.phtml

<select name="year" onchange="saveChanges(this);">
                                    <option value="najam">Najam</option>
                                    <option value="Ali">Ali</option>
                                    <option value="Hassan">Hassan</option>
                                    <option value="Hassam">Hassam</option>

                                </select>
                                <script type="text/javascript">
                                    function saveChanges(object){   
    $.ajax({
        method :'POST',
        url: 'home',
        data: object.value,
        cache: false,
        error: function(e){
            alert(e);
            console.log("error" + e);
        },
        success: function(response){
            // A response to say if it's updated or not
            alert("Success" + object.value);
            console.log("Success");
        }
    });   
}
                                </script>

ホームアクション

if($this->_request->isXmlHttpRequest()){
//do this
}
else {
//do this
// It always in the else Part.

}

コンソールとjavascriptアラートメッセージに成功メッセージを出力しますが。

このコードが間違っている場合は助けてください

4

2 に答える 2

1
method :'POST'

type: "POST"

私は常に$this->_request->isXmlHttpRequest()ajaxリクエストを検出し、常に機能しています。

すみません、私は英語が苦手です

アップデート:

コントローラ:

final class IndexController extends Zend_Controller_Action
{
    final public function indexAction(){
        if($this->_request->isXmlHttpRequest()){
            header('Content-type: application/json;charset=UTF-8');
            exit(json_encode(($this->_request->getPost())));
        }
    }      
}

意見:

                            <select id="year" name="year">
                                <option value="najam">Najam</option>
                                <option value="Ali">Ali</option>
                                <option value="Hassan">Hassan</option>
                                <option value="Hassam">Hassam</option>
                            </select>
                            <script type="text/javascript">
                                $(function(){
                                   $("#year").change(function(){
                                       var _this = $(this);
                                        $.ajax({
                                            type :'POST',
                                            url: "", // empty string means current URL
                                            data: {year: _this.attr("value")},
                                            dataType: 'json',
                                            cache: false,
                                            error: function(e){
                                                console.log(e);
                                            },
                                            success: function(response){
                                                console.log(response);
                                            }
                                        });   
                                    });
                                });
                            </script>

ソースコードは次のとおりです。

http://www.mediafire.com/?hvv4830macfl0wm

助けてください!

于 2013-09-17T15:24:56.613 に答える