2011-06-29 11 views
8

मुझे यह कोड W3Schools में मिलता है। यह जावास्क्रिप्ट के साथ फॉर्म सत्यापन के बारे में है।जावास्क्रिप्ट के साथ फॉर्म प्रमाणीकरण php

जब उपयोगकर्ता गलत मेल प्रारूप टेप करता है, तो एक चेतावनी दिखाई देती है।

जब मैं कोड को चेक करता हूं तो मैं फॉर्म onsubmit="return validateForm(); पर देखता हूं, ठीक है फ़ंक्शन त्रुटि मामले में झूठी वापसी करता है।

तो मेरा सवाल यह है कि संदेश बॉक्स के उपयोग के बजाय त्रुटि संदेश लिखने के लिए PHP में इसका उपयोग करने के लिए जावास्क्रिप्ट से बूलियन मान कैसे प्राप्त करें।

<html> 
<head> 
    <script type="text/javascript"> 
    function validateForm() 
    { 
    var x=document.forms["myForm"]["email"].value 
    var atpos=x.indexOf("@"); 
    var dotpos=x.lastIndexOf("."); 
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) 
     { 
     alert("Not a valid e-mail address"); 
     return false; 
     } 
    } 
    </script> 
    </head> 

    <body> 
    <form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post"> 
    Email: <input type="text" name="email"> 
    <input type="submit" value="Submit"> 
    </form> 
</body> 

</html> 

अग्रिम धन्यवाद:

यह मेरा कोड है।

अली

+3

डब्ल्यू 3 स्कूल्स अविश्वसनीय है: [W3Fools देखें] (http://w3fools.com/) – mc10

उत्तर

7

आपको जावास्क्रिप्ट से बूलियन मान नहीं मिल सकता है। आपको क्या करने की ज़रूरत है, पहले से ही एक त्रुटि div तैयार है। इस तरह कुछ:

<body> 
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post"> 
Email: <input type="text" name="email"> 
<div id="error"></div> 
<input type="submit" value="Submit"> 
</form> 

इसे छिपाने के लिए इसे सीएसएस जोड़ें। फिर अपने सत्यापन फ़ॉर्म में, त्रुटि div के HTML को बदलने के लिए जावास्क्रिप्ट का उपयोग करें।

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) 
    { 
     document.getElementById("error").innerHTML="Not a valid e-mail address"; 
     return false; 
    } 

"वापसी झूठी;" भाग जमा करने के लिए फॉर्म को बताने के लिए है। जैसा कि अन्य उत्तरों में उल्लिखित है PHP और जावास्क्रिप्ट इंटरफ़ेस नहीं है। PHP सर्वर पक्ष है, जावास्क्रिप्ट क्लाइंट पक्ष है। वे एक-दूसरे से बात नहीं करते हैं। हालांकि, वे दोनों HTML को संशोधित कर सकते हैं। बस याद रखें, जावास्क्रिप्ट हमेशा ब्राउज़र में चलता है। तो अगर इसे PHP में चीजें भेजने की ज़रूरत है तो आपको सर्वर की तरफ PHP स्क्रिप्ट को कॉल करने के लिए AJAX का उपयोग करने और उस तरह की जानकारी भेजने की आवश्यकता है।अधिकांश समय, हालांकि, जब आप जावास्क्रिप्ट का उपयोग कर रहे हैं, तो यह PHP नहीं है जिसे जानकारी की आवश्यकता है, यह उपयोगकर्ता है। इसलिए एचटीएमएल को संशोधित करने के लिए जावास्क्रिप्ट का उपयोग करना चाल है।

3

AJAX का उपयोग कर के बाहर, आप नहीं कर सकते। याद रखें कि PHP एक सर्वर साइड भाषा है, और यह कि ब्राउज़र ब्राउज़र में क्लाइंट पर चलता है। जब तक PHP ब्राउज़र में पृष्ठ प्रस्तुत करता है, तो यह प्रसंस्करण हो जाता है। आपको आवश्यकता के दो परतों की आवश्यकता है - जावास्क्रिप्ट सत्यापन और PHP सत्यापन। क्यूं कर? क्योंकि ब्राउज़र में जावास्क्रिप्ट बंद कर दिया जा सकता है। यह एक सुरक्षा उपाय के रूप में बेकार बनाता है। जावास्क्रिप्ट सत्यापन केवल उपयोगकर्ता के अनुभव को बढ़ाने के तरीके के रूप में उपयोग किया जाना चाहिए।

अंत में, w3schools पर न जाएं। इसकी बहुत सारी जानकारी अमान्य है (अधिक जानकारी के लिए साइट http://www.w3fools.com देखें)। इसके बजाय, मोज़िला के डेवलपर नेटवर्क का उपयोग करें: https://developer.mozilla.org/en-US/learn/

3

सबसे आसान बात यह है कि फ़ंक्शन में प्रदर्शन करना है। की तरह कुछ के साथ चेतावनी बदलें: -

document.getElementById ("त्रुटिसंदेश") innerHTML = "कोई मान्य ई-मेल एड्रेस";।

आपको अपने एचटीएमएल में त्रुटि के आईडी के साथ एक डीआईवी की भी आवश्यकता होगी।

6
if (..) 
{ 
    document.getElementByID('error').InnerHTML = "Not a valid e-mail address!"; 
    return false; 
} 
else 
{ 
    document.getElementByID('error').InnerHTML = ""; 
} 

और अपने मार्कअप जोड़ने में:

<span id="error"></span> 
3

मैं इस के लिए PHP का उपयोग नहीं होता।

<html> 
<head> 
<script type="text/javascript"> 
function validateForm() 
{ 
var x=document.forms["myForm"]["email"].value 
var atpos=x.indexOf("@"); 
var dotpos=x.lastIndexOf("."); 
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) 
    { 
    document.getElementById('errorMsg').style.display = 'block'; 
    return false; 
    } 
} 
</script> 
</head> 

<body> 
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post"> 
Email: <input type="text" name="email"> 
<input type="submit" value="Submit"> 
<div id="errorMsg" style="display: none;">Not valid email</div> 
</form> 
</body> 

</html> 

इस तरह आपको अपने सर्वर पर वापस जाना नहीं होगा।

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