2014-09-17 6 views
19

मैं एक रूप और एक अन्य पेज यहाँ प्रपत्र मूल्य पर कार्रवाई करने के साथ 1 मुख्य पृष्ठ है 2 पृष्ठ

पर्चा पृष्ठ का स्रोत कोड हैं:

<meta charset="UTF-8"> 
<title>Form Page</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<form action="process.php" method="post" id="reg-form"> 
     Username: <input type="text" id="username" name="username"> 
     <br> 
     Password: <input type="password" id="password" name="password"> 
     <br> 
     <button type="submit" id="submit-btn">Traditional Submit</button> 
     <button type="button" id="post-btn">$.Post Submit</button> 
</form> 
<script> 
    $("#post-btn").click(function(){   
     $.post("process.php",function(data){ 
      alert(data); 
     }); 
    }); 
</script> 

प्रक्रिया पृष्ठ:

<?php 
$username=$_POST["username"]; 
$password=$_POST["password"]; 
echo "Username: ".$username; 
echo "<br>"; 
echo "Password: ".$password;?> 

अगर मैं क्लिक करें "पारंपरिक सबमिट करें "buttton, यह पूरी तरह से अच्छी तरह से काम करता है।

लेकिन जब मैं क्लिक करें "$ .Post सबमिट करें" बटन, मैं सिर्फ त्रुटि संदेश प्राप्त हो रहा है "नोटिस: अपरिभाषित सूचकांक ..."

मैं समझ नहीं सकता है, जहां समस्या है, कृपया मदद कृपया जांच और ठीक है, अग्रिम धन्यवाद!

+0

हाँ, मैं फॉर्म वैल्यू को संसाधित करने और मुख्य पृष्ठ पर रहने के लिए अजाक्स का उपयोग करने की कोशिश कर रहा हूं (पारंपरिक फॉर्म सबमिट करने जैसे प्रक्रिया पृष्ठ पर रीडायरेक्ट होने की बजाय) – Yolo

उत्तर

40

आप चुन सकते हैं और साथ ही प्रपत्र डेटा भेजने के लिए:

$("#post-btn").click(function(){   
    $.post("process.php", $("#reg-form").serialize(), function(data) { 
     alert(data); 
    }); 
}); 

jQuery serialize विधि के लिए दस्तावेज़ है, जो एक में प्रपत्र फ़ील्ड्स से डेटा encodes पर एक नजर डालें डेटा-स्ट्रिंग को सर्वर पर भेजा जाना है।

+1

बस इसमें जोड़ रहा है: 'action =" process.php "method =" post "' अब

'तत्व पर आवश्यक नहीं है क्योंकि सबमिशन को jQuery AJAX द्वारा नियंत्रित किया जा रहा है। पोस्ट() 'विधि। – nyedidikeke

6

val() का उपयोग कर अपने बक्सें का मूल्य प्राप्त करें और उन्हें एक चर में संग्रहीत करते हैं। $.post के माध्यम से उन मान पास करें। $.Post Submit button का उपयोग कर में आप वास्तव में फार्म निकाल सकते हैं।

<script> 

    username = $("#username").val(); 
    password = $("#password").val(); 

    $("#post-btn").click(function(){   
     $.post("process.php", { username:username, password:password } ,function(data){ 
      alert(data); 
     }); 
    }); 
</script> 
+2

इससे भी बेहतर, ['serialize' विधि का उपयोग करें ] (http://api.jquery.com/serialize/) –

+1

@SeanVieira मुझे लगता है कि उपयोग करने के लिए कैसे पता नहीं है। इसका उद्देश्य क्या है? मैं सीख रहा हूं लेकिन बस समझ में नहीं आता :) कृपया मुझे बताएं –

+5

'serialize' एक फॉर्म (या इनपुट का एक सेट) लेता है और सभी 'इनपुट',' select', और 'textarea' टैग को बदल देता है एक HTTP POST अनुरोध (या जीईटी अनुरोध की क्वेरी स्ट्रिंग के रूप में) के रूप में भेजने के लिए उपयुक्त एक स्ट्रिंग। उदाहरण के लिए, एकल फ़ील्ड के साथ एक फॉर्म को क्रमबद्ध करना, '<इनपुट नाम =" firstName "value =" शॉन ">' 'firstName = Sean" '' बन जाता है। –

4

Yor $.post कोई डेटा नहीं है। आपको फॉर्म डेटा पास करना होगा। आप प्रपत्र डेटा पोस्ट करने के लिए serialize() उपयोग कर सकते हैं। प्रयास करें इस

$("#post-btn").click(function(){ 
    $.post("process.php", $('#reg-form').serialize() ,function(data){ 
     alert(data); 
    }); 
}); 
संबंधित मुद्दे