[Javascript] प्ले 2.x: एक सामान्य बटन के साथ एक AJAX अनुरोध कैसे करें


Answers

के लिए बाहर देखने के लिए कुछ ... जब फोन

Routes.javascriptRouter("myJsRoutes",

मार्ग खेलने से आयात किया जाता है। रूटे, प्ले नहीं.एपीआई। रूट्स

अगर मैंने इस कोड को कार्यान्वित करने में कोई त्रुटि आई थी, क्योंकि मुझे लगता है कि यह एपीआई (स्पष्ट रूप से मैं गलत था) से आया होगा। इसके अलावा, सब कुछ महान काम करता है ~ !!

Question

इसलिए मैंने पहले से काम करने के लिए सफलतापूर्वक एजेक्स अनुरोध प्राप्त किए हैं, लेकिन मुझे हमेशा एक फार्म का उपयोग करना पड़ता है, और फिर सबमिट के अंत में झूठी वापसी करते हुए यह पृष्ठ को ताज़ा नहीं करता।

मैंने हाल ही में एक अलग फ़ाइल में मेरी जावास्क्रिप्ट को स्थानांतरित कर दिया है जिससे मेरे @ कमांड्स को असफल होने का कारण हुआ है। इस वजह से मैं अपने रास्ते में अपने यूआरएल को सेट करने के लिए नहीं कहूंगा?

एचटीएमएल:

<button id="saveAsDefaultButton">Save as default</button>

प्लेफ्रेमवर्क जावा कोड:

public static Result saveDefaultPhoneForUser(String handset) {
    User currentUser = User.findByName(session("name"));
    currentUser.lastControlledHandset = theHandset;
    currentUser.save();
    return ok();
}

मार्गों:

POST    /                           controllers.Application.saveDefaultPhoneForUser(handset : String)

जावास्क्रिप्ट:

$('#saveAsDefaultButton').click(function(evt) {
        $('#errors').hide();
        $.ajax({
            type : 'POST',
            url : "controllers.Application.saveDefaultPhoneForUser",
            data : $('#controlledPhone option:selected').text(),
            dataType : "text",
            success : function(data) {
                //setError('Call succedded');
                //$('#test1').attr("src", data)
            },
            error : function(data) {
                setError('Make call failed');
            }
        });
        return false;
    });

मुझे यकीन है कि ऐसा करने का एक रास्ता है, मुझे कोई भी भाग्य नहीं मिल रहा है। किसी भी मदद काफी appreaciated




जावास्क्रिप्ट रूटर बनाने के लिए एंबेडेड राउटर का उपयोग करना आसान समाधान है। आप जावास्क्रिप्ट राउटर को जावास्क्रिप्ट @javascriptRouter सहायक डायरेक्टिव का उपयोग करके उत्पन्न कर सकते हैं, तो अपने कोड को अपने html पृष्ठ सिर टैग (मुख्य सजाने टेम्पलेट के अंदर) के अंदर रखें।

<head>
    <title>Saeed Title</title>
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    <script src="@routes.Assets.at("javascripts/jquery/v1.12.4/jquery.min.js")" type="text/javascript"></script>
    @helper.javascriptRouter("jsRoutes")(
        routes.javascript.MyController.getById,
        routes.javascript.MyController.getByName
    )
</head>

सिंटैक्स त्रुटि (इंटेलिज में) के बारे में चिंता न करें और अपने एक्शन नाम के बाद कंस बनाने के लिए उपयोग न करें। अब आप अपने jsRoutes.controllers.MyController.getById(id) कॉल कोड में jsRoutes.controllers.MyController.getById(id) उपयोग कर सकते हैं।

$.ajax(jsRoutes.controllers.MyController.getById(id))
   .done( /*...*/ )
   .fail( /*...*/ );

या यूआरएल पाने के लिए jsRoutes.controllers.MyController.getById(id).url । url का उपयोग करें अधिक जानकारी




Links