我有一个注册表单
<form class="sform" method="post" action="<?=base_url()?>login/create_member" >
<div class="rleft">User Type <span style="color:red">*</span></div>
<div class="fright">
<select name="role" id="role" onchange="rToggle()">
<option value="1">Company</option>
<option value="2">Student</option>
</select>
</div>
<div class="rleft">Username <span style="color:red">*</span></div><div class="fright">
<input name="username" type="text" id="username" size="20" title="Username" class="rtb" value="<?php echo set_value('username');?>">
<?php echo form_error('username');?></div>
<div class="rleft">Password <span style="color:red">*</span></div><div class="fright">
<input name="password" type="password" id="password" size="20" title="Password" class="rtb" value="<?php echo set_value('password');?>">
<?php echo form_error('password');?></div>
<div class="rleft">Confirm Password <span style="color:red">*</span></div><div class="fright">
<input name="password2" type="password" id="cpassword" size="20" title="Confirm Password" class="rtb" value="<?php echo set_value('password2');?>">
<?php echo form_error('password2');?></div>
<div class="rleft">Last Name <span style="color:red">*</span></div><div class="fright">
<input name="lname" type="text" id="firstname" title="First Name" class="rtb" value="<?php echo set_value('lname');?>">
<?php echo form_error('lname');?></div>
<div class="rleft">First Name <span style="color:red">*</span></div><div class="fright">
<input name="fname" type="text" id="lastname" title="Last Name" class="rtb" value="<?php echo set_value('fname');?>">
<?php echo form_error('fname');?></div>
<div class="rleft">Middle Initial <span style="color:red">*</span></div><div class="fright">
<input name="mname" type="text" id="middlename" size="5" title="Middle Initial" value="<?php echo set_value('mname');?>">
<?php echo form_error('mname');?></div>
<div class="rleft">E-mail Address <span style="color:red">*</span></div><div class="fright">
<input NAME="email_add" type="text" id="email" title="Email" class="rtb" value="<?php echo set_value('email_add');?>">
<?php echo form_error('email_add');?></div>
<div id="companydetails">
<div class="rleft">Position/Title <span style="color:red">*</span></div><div class="fright">
<input NAME="cposition" type="text" id="cposition" title="Position/Title" class="tb">
</div>
<div class="rleft">Company Name <span style="color:red">*</span></div><div class="fright">
<input NAME="cname" type="text" id="cname" title="Company Name" class="tb">
</div>
<div class="rleft">Office Address <span style="color:red">*</span></div><div class="fright">
<input NAME="caddress" type="text" id="caddress" title="Office Address" class="tb">
</div>
<div class="rleft">Contact Number <span style="color:red">*</span></div><div class="fright">
<input NAME="ccontact_no" type="text" id="ccontact_no" title="Office Address" class="tb">
</div>
</div>
<div class="rleft"> </div>
<div class="fright">
<input type="submit" value="Save" name="submit" id="regsubmit">
<input type="reset" value="Clear" ></div>
</form>
和我的javascript函数
function rToggle()
{
if ($('#role').val() == '1') {
$('#companydetails').hide();
$('#cposition').removeClass('rtb');
$('#cname').removeClass('rtb');
$('#caddress').removeClass('rtb');
$('#ccontanct_no').removeClass('rtb');
}
else {
$('#companydetails').show();
$('#cposition').addClass('rtb');
$('#cname').addClass('rtb');
$('#caddress').addClass('rtb');
$('#ccontanct_no').addClass('rtb');
}
}
这样的工作原理如下:。
如果我选择2(学生),它只会显示以下字段:username,pass,cpass,fname,mname,email_address
如果我选择1(公司),它将显示所有字段,包括上面的字段和cname,cposition,caddress,ccontact_no
现在的问题是,当我填满所有字段然后选择2(学生)时,它仍将保存我的数据库中的所有帖子数据。我想要的是即使我填满所有字段然后选择2(学生)那些在公司细节中现在必须保存。 有人知道解决这个问题吗?或javascript专家?
答案 0 :(得分:0)
您应该将PHP添加到您的代码中。
但回答你的问题:这是服务器方面的问题。用JavaScript解决它是不够的 在您的PHP代码中,无论您在何处编写INSERT或UPDATE查询,都必须检查角色为2,如果不是,则不添加额外字段。
为避免在不需要时将额外字段传递到您的服务器,您可以像这样更新代码:
if ($('#role').val() == '1') {
// ...
$('#cposition').disabled = false;
// etc. for the other inputs
}
else {
// ...
$('#cname').disabled = true;
// etc.
}