php - Submit Only One of Two toggling forms -
i have 2 different forms being included in php file. visibility based on onclick js toggle function. toggle works great. if fill 1 of forms out , click respective submit button, sent same page rather action.php file have specifed in broswer:
http://localhost/?user_temp=f&pass_temp1=f&pass_temp2=ff&email_temp=f&answer1=3&submitbtn=signup+now
and javascript error: "typeerror undefined document.hform.ssecureuser
both forms have own javascripts md5 data , ssecureuser comes signup form.
interestingly, if remove 1 of inlcude forms leaving submit form lets say, work. seems these forms' javascript clashing 1 :/ ...
i tried this didnt work me since each 1 of forms using java script. please , in advance!!!... let me know if see of forms, javascript, or php files...
toggle code:
<div> <a href="/forms/login-form.php" onclick="toggle_visibility('login-div'); return false;">login</a> <div id="login-div" style="display:none"> <?php include($_server['document_root'].'/forms/login-form.php');?> </div> <a href="/forms/signup-form.php" onclick="toggle_visibility('signup-div'); return false;">sign up</a> <div id="signup-div" style="display:none"> <?php include($_server['document_root'].'/forms/signup-form.php'); ?> </div> <script type="text/javascript"> <!-- function toggle_visibility(id) { var e = document.getelementbyid(id); if(e.style.display == 'block'){ e.style.display = 'none'; } else{ e.style.display = 'block'; } } //--> </script> </div>
login form:
<div id="hasjavascript1" style="display:none"> <form name="login"> username: <input type="text" name="user_temp" size=32 maxlength=32><br> password: <input type="password" name="pass_temp" size=32 maxlength=32><br> <input onclick="passresponse(); return false;" type="submit" name="submitbtn" value="login now"> </form> <form action="/action/login-action.php" method="post" name="hform"> <input type="hidden" name="secureuser"> <input type="hidden" name="securepass"> </form> </div> <script language="javascript" src="/js/md5.js"></script> <script language="javascript"> <!-- document.getelementbyid('hasjavascript1').style.display = 'block'; function passresponse() { document.hform.secureuser.value = md5(document.login.user_temp.value); document.hform.securepass.value = md5(document.login.pass_temp.value); document.login.pass_temp.value = ""; document.hform.submit(); } // --> </script>
signup form:
<?php include ($_server['document_root'].'/functions/functions.php');?> <div id="hasjavascript" style="display:none"> <form name="signup"> <label>username</label> <input type="text" name="user_temp" size=32 maxlength=32><span>alphanumeric, no spaces</span><br> <label>type password</label> <input type="password" name="pass_temp1" size=32 maxlength=32><span>alphanumeric, 8-12 long</span><br> <label>retype password</label> <input type="password" name="pass_temp2" size=32 maxlength=32><br> <label>email</label> <input type="text" name="email_temp" size=32 maxlength=32><br> <label> is: </label><?php $captchaarray = mycaptcha(); echo $captchaarray['equation'];?><br> <label>answer</label><input type="text" name="answer1"> <input onclick="passresponse1(); return false;" type="submit" name="submitbtn" value="signup now"> </form> <form action="/action/signup-action.php" method="post" name="signup-hform"> <input type="hidden" name="ssecureuser"> <input type="hidden" name="ssecurepass1"> <input type="hidden" name="ssecurepass2"> <input type="hidden" name="secureemail"> <input type="hidden" name="answer2"> <input type="hidden" name="checker" value=".<?php echo $captchaarray['answer'];?> ."> </form> </div> <script language="javascript" src="/js/md5.js"></script> <script language="javascript"> <!-- document.getelementbyid('hasjavascript').style.display = 'block'; function passresponse1() { document.signup-hform.ssecureuser.value = md5(document.signup.user_temp.value); document.signup-hform.ssecurepass1.value = md5(document.signup.pass_temp1.value); document.signup.pass_temp1.value = ""; document.signup-hform.ssecurepass2.value = md5(document.signup.pass_temp2.value); document.signup.pass_temp2.value = ""; document.signup-hform.secureemail.value = md5(document.signup.email_temp.value); document.signup-hform.answer2.value = document.signup.answer1.value; document.signup.answer1.value = ""; document.signup-hform.submit(); } // --> </script>
one problem see not specify value attributes or values in hidden fields:
<input type="hidden" name="ssecureuser"> <input type="hidden" name="ssecurepass1"> <input type="hidden" name="ssecurepass2"> <input type="hidden" name="secureemail"> <input type="hidden" name="answer2">
but in js, you're trying access value attribute.
document.hform.ssecureuser.value = ...
try adding values those. give hidden forms ids , use document.getelementbyid()
syntax instead of document.hform.ssecureuser
syntax.
as far form submits, suppressing action of first form, trying fill in values hidden fields in second form , submitting that. both of scripts use same name forms "hform"
. need unique. give them unique id.
another possible issue line:
<input type="hidden" name="checker" value=".<?php echo $captchaarray['answer'];?> .">
you're using . string concatenation, it's not in echo/print statement. think it's supposed be:
<input type="hidden" name="checker" value="<?php echo $captchaarray['answer'];?>">
Comments
Post a Comment