2010-02-21 11 views
7

क्या मैं पोस्ट वैरिएबल पास कर सकता हूं और एक हाइपरलिंक पर क्लिक करके एक पेज पुनः लोड कर सकता हूं?jQuery ऑनक्लिक पास पोस्ट वैरिएबल और रीलोड पेज

स्पष्ट होने के लिए मेरे पास ऐसा कुछ है। <a href="test.php?name=test">Click</a>

तो जावास्क्रिप्ट सक्षम है,

मुझे लगता है कि मैं "event.preventDefault()" चर के रूप में पारित करने को दबाने के लिए उपयोग कर सकते हैं।

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

यदि जावास्क्रिप्ट अक्षम है, तब उपर्युक्त काम करना चाहिए।

उत्तर

11

आप इसे form तत्व बनाकर कर सकते हैं, इसे href पर इंगित करते हुए और .submit() पर कॉल कर रहे हैं।

<a class="postlink" href="test.php?name=test">Click</a> 

<script type="text/javascript"> 
    $('.postlink').click(function() { 
     var form= document.createElement('form'); 
     form.method= 'post'; 
     form.action= this.protocol+'//'+this.hostname+this.pathname; 
     $.each(this.search.slice(1).split(/[&;]/g), function() { 
      var ix= this.indexOf('='); 
      if (ix===-1) return; 
      var input= document.createElement('input'); 
      input.type= 'hidden'; 
      input.name= decodeURIComponent(this.slice(0, ix)); 
      input.value= decodeURIComponent(this.slice(ix+1)); 
      form.appendChild(input); 
     }); 
     document.body.appendChild(form); 
     form.submit(); 
     return false; 
    }); 
</script> 

या आप बस एक AJAX अनुरोध के बजाय और reload() पेज बाद में यदि आप पसंद कर सकता है।

हालांकि, मुझे यकीन नहीं है कि आप ऐसा क्यों करना चाहते हैं। एक लिंक का उपयोग आमतौर पर पोस्ट किया जाता है, सिवाय इसके कि जब यह नहीं होता है? (न केवल जब जेएस अक्षम/अनुपलब्ध होता है या जब यह एक खोज इंजन होता है, लेकिन जब उपयोगकर्ता मध्य-क्लिक को लिंक करता है या इसे राइट-क्लिक-बुकमार्क करने की कोशिश करता है या जो भी हो।)

यदि आप चाहते हैं कि कुछ ऐसा है POST फॉर्म सबमिट करने के लिए एक बटन की तरह व्यवहार करता है, वास्तव में वास्तविक रूप का उपयोग करने और बटन सबमिट करने के लिए बेहतर होता है, और उसके बाद लिंक को देखने के लिए इसे पुन: स्थापित करने के लिए सीएसएस का उपयोग करें यदि आप इसे देखना चाहते हैं।

+0

धन्यवाद एक टन। इसने काम कर दिया। अजाक्स और जेक्री मेरे लिए बहुत नए हैं। तो आप सुझाव दे रहे हैं, जब जेएस सक्षम है तो "पोस्ट" के बजाय "AJAX" करें और जब जेएस को "प्राप्त करें" द्वारा पुनः लोड किया जाता है। Thats सही लगता है। मैं सचमुच प्रशंसा करता हूँ। यदि संभव हो तो आप मुझे अजाक्स सामान की मदद कर सकते हैं। फिर से धन्यवाद। – user277891

0

मेरे पास पृष्ठ पर कुछ 10 लिंक हैं। जब उपयोगकर्ता उन लिंक पर क्लिक करता है तो AJAX-reload होना चाहिए।

स्पष्ट होने के लिए मेरे पास ऐसा कुछ है।

<a href="test.php?name=one">one</a> 
<a href="test.php?name=Two">Two</a> 

तो जावास्क्रिप्ट सक्षम है,

Onclick, ajax लोड जगह ले जाना चाहिए।

यदि जावास्क्रिप्ट अक्षम है, तो उपर्युक्त काम करना चाहिए।

असल में मैं अपने खोज पृष्ठ के कुछ मूल्यों को सीमित करने के लिए name का उपयोग कर रहा हूं।

2

बहुत अच्छा संकेत ....

मैं पहली बार एक अजाक्स पोस्ट कॉल के माध्यम से प्रपत्र डेटा भेजने की कोशिश कर और बाद में पृष्ठ पुनः लोड करने के लिए, लेकिन यह ठीक से काम नहीं कर रहा था था: अब

var biq_select_val = jQuery('#biq_search_select').val(); 
jQuery.post(window.location.href, 
     { biq_amazon_item_list_search: biq_select_val}, 
     function() {window.location.reload();} 
    ); 

मैं सिर्फ एक प्रयोग कर रहा हूं:

jQuery('#biq_amazon_item_list_search_form').submit(); 

और यह ठीक काम कर रहा है।

+0

कभी-कभी सबसे आसान समाधान सबसे अच्छा है .. धन्यवाद – David

संबंधित मुद्दे