2012-03-17 23 views
12

पर प्राप्त करें GET URL स्ट्रिंग को jQuery में POST में परिवर्तित करने का सबसे आसान तरीका क्या है?JQuery: URL को POST

उदा। मैं एक लिंक

<a href="/somepage?x=1&amp;y=3" id="postlink">link</a> 

को जावास्क्रिप्ट सक्रिय होने पर पोस्ट ऑनक्लिक के रूप में सबमिट करने के लिए चाहते हैं। कोई AJAX नहीं, बस सामान्य रूप सबमिट करना।

कोई विचार?

धन्यवाद, हेंस।

+0

आपकी आवश्यकता के बारे में विशिष्ट हो .. को समझ नहीं सकता अपने prooblem क्या ?? –

+0

यह उपयोगी हो सकता है http://tomengineering.tripod.com/gettopost.html – elclanrs

+0

"समस्या" क्या मैं जावास्क्रिप्ट सक्रिय होने पर केवल POST के माध्यम से सबमिट डेटा चाहता हूं। मुझे लगता है कि मैं फ्लाई पर डीओएम के यूआरएल के आधार पर एक छिपी हुई फॉर्म जोड़ सकता हूं। लेकिन क्या कोई आसान या अधिक सुरुचिपूर्ण तरीका है? – ottsch

उत्तर

12

मैं सिर्फ इस कोड लिखने, कृपया जांच करें, हो सकता है यह उपयोगी http://jsfiddle.net/AEwxt/

$('#postlink').click(function() { 
    var p = $(this).attr('href').split('?'); 
    var action = p[0]; 
    var params = p[1].split('&'); 
    var form = $(document.createElement('form')).attr('action', action).attr('method','post'); 
    $('body').append(form); 
    for (var i in params) { 
     var tmp= params[i].split('='); 
     var key = tmp[0], value = tmp[1]; 
     $(document.createElement('input')).attr('type', 'hidden').attr('name', key).attr('value', value).appendTo(form); 
    } 
    $(form).submit(); 
    return false; 
}); 
+0

धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था। – ottsch

+1

बस .attr ('method', 'post) जोड़ने की आवश्यकता है: http://jsfiddle.net/xcpMk/ – ottsch

+0

आप दोहराना क्यों कर रहे हैं ".attr (' type ',' hidden ')। Attr (' name ', कुंजी) .attr ('मान', मान) "? यह jQuery में आईई 8 बग ट्रिगर करता है और एक टाइपो लगता है :) – AlfaTeK

-1

आप HTML < प्रपत्र पद्धति का उपयोग करके प्रपत्र इनपुट भेज सकते हैं = "पोस्ट">

जब मैं नहीं कर रहा हूँ यदि आप जावास्क्रिप्ट भाग को लागू करना चाहते हैं, तो इसके पीछे तर्क के बारे में पूरी तरह से सुनिश्चित करें, < फॉर्म विधि = "GET"> < नोस्क्रिप्ट> टैग के साथ इसे फ़ॉर्म को चारों ओर घुमाएं।

3

डेमो: http://jsfiddle.net/w5WA6/

function getUrlVars(_url) 
{ 
    var vars = [], hash; 
    var hashes = _url.slice(_url.indexOf('?') + 1).split('&'); 

    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 

    } 

    return vars; 
} 

var arVars = getUrlVars($("#test").attr("href")); 
for(var i=0;i<arVars.length;i++){ 
    //put var in input for submition you can change type by `hidden` 
    $("#myForm").append("<input type='text' value='"+arVars[arVars[i]]+"' name='"+arVars[i]+"'/>"); 
} 
​ 
2

, सेर्गेई के कोड एक छोटे से संशोधित ताकि जब उपयोगकर्ता लिंक पर 'घूमता है', इसे पाने के अनुरोध प्रदर्शित नहीं करता है।

लिंक:

<a href="#" postURL="/tpl/schRosterSearchSubmit.do?searchReci.uniqueId=&searchReci.studentId=&searchReci.schoolId=3205&searchReci.name.firstName=&searchReci.name.lastName=&searchReci.gender=&searchReci.rdobDay=&searchReci.rdobMonth=&searchReci.rdobYear=&searchReci.rssn1=&searchReci.rssn2=&searchReci.rssn3=&searchReci.phoneNumber=&searchReci.citzOrResAlien=&searchReci.country.isoCountryCode=&searchReci.address.street1=&searchReci.address.street2=&searchReci.address.city=&searchReci.address.state=&searchReci.address.zip=&searchReci.address.zipExt=&searchReci.parentN.firstName=&searchReci.parentN.lastName=&searchReci.parentEmail=&searchReci.parentMAddr.street1=&searchReci.parentMAddr.street2=&searchReci.parentMAddr.city=&searchReci.parentMAddr.state=&searchReci.parentMAddr.zip=&searchReci.parentMAddr.zipExt=&searchReci.parentPAddr.street1=&searchReci.parentPAddr.street2=&searchReci.parentPAddr.city=&searchReci.parentPAddr.state=&searchReci.parentPAddr.zip=&searchReci.parentPAddr.zipExt=&searchReci.pdobDay=&searchReci.pdobMonth=&searchReci.pdobYear=&searchReci.pssn1=&searchReci.pssn2=&searchReci.pssn3=&searchReci.parentCitzOrResAlien=&searchReci.parentCountry.isoCountryCode=&searchReci.addrUpdInd=&searchReci.inactiveDtDay=&searchReci.inactiveDtMonth=&searchReci.inactiveDtYear=&searchReci.ncoaUpdInd=&searchReci.badAddrInd=&branding=upromise&acct=XXXX&schRosterPager.offset=50" class="rnavLink">2nd Page results</a> 

onclick पोस्ट में कनवर्ट कर रहा:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.rnavLink').click(function() { 
     var p = $(this).attr('postURL').split('?'); 
     var action = p[0]; 
     var params = p[1].split('&'); 
     var form = $('<form/>', {action:action, method:'post'}).appendTo('body'); 
     for (var i in params) { 
      var tmp = params[i].split('='); 
      var key = tmp[0], value = tmp[1]; 
      $('<input/>', {type:'hidden', name:key, value:value}).appendTo(form); 
     } 
     $(form).submit(); 
     return false; 
    }); 
});