0

ここには多数のラジオ ボタンがあり、それらの値はデータベースから取得されます。休暇の種類を追加したいのですが、わかりません。より明確にするために、「病気」ラジオボタンをクリックして送信ボタンを押すと、「病気」クレジットまたは病気休暇の利用可能な時間 ((value=$sLeave) である私のラジオボタンの値同時に、病気休暇(非表示タイプ)である休暇のタイプは、次のページに渡されます。

私はあらゆるタイプの休暇でこれを試しました:

 if($sLeave!=0)
 {
 ?> 

<input type="radio" name="optLeave" value="<?php echo $sLeave; ?>" onclick="disableTextarea()" /><label for="Sick">Sick</label>
    <input type="hidden" name"leaveType" value="Sick" />

<?php
} 
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label  for="Sick">Sick</label>

<?php
}
?>

しかし、休暇のすべてのタイプが次のページに渡され、最後の非表示の値が出力されます。選ばれるものではありません。

コードは次のとおりです。

<form id="leaveForm" name="lform" method="get" action="leaveFiled.php" />

if($sLeave!=0)
{
?>  
<input type="radio" name="optLeave" value="<?php echo $sLeave; ?>" onclick="disableTextarea()" /><label for="Sick">Sick</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Sick">Sick</label>


<?php
}
?>

<?php
if($vLeave!=0)
{
?>
<input type="radio" name="optLeave" value="<?php echo $vLeave; ?>" onclick="disableTextarea()" /><label for="Vacation">Vacation</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Vacation">Vacation</label>

<?php
}
?>

<?php                   
if($eLeave!=0)
{
?>
<input type="radio" name="optLeave" value="<?php echo $eLeave; ?>" onclick="disableTextarea()" /><label for="Emergency">Emergency</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Emergency">Emergency</label>

<?php
}
?>

<?php                   
if($mLeave!=0 && $sex=='F')
{
?>
<input type="radio" name="optLeave" value="<?php echo $mLeave; ?>" onclick="disableTextarea()" /><label for="Maternity">Maternity</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Maternity">Maternity</label>

<?php
}
?>

<?php                   
if($pLeave!=0 && $sex=='M')
{
?>
<input type="radio" name="optLeave" value="<?php echo $pLeave; ?>" onclick="disableTextarea()" /><label for="Paternity">Paternity</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Paternity">Paternity</label>

<?php
}
?>

<?php                   
if($uLeave!=0)
{
?>
<input type="radio" name="optLeave" value="<?php echo $uLeave; ?>" onclick="disableTextarea()" /><label for="Union">Union</label>

<?php
}
else
{
?>
<input type="radio" name="optLeave" disabled="disabled" /><label for="Union">Union</label>

<?php
}
?>

<?php                   
if($oLeave!=0)
{
?>

<tr>
<td height="40" colspan="3" align="left">
    <strong>
    <input type="radio" name="optLeave" value="<?php echo $oLeave; ?>" onclick="enableTextarea()" />    
    <label for="Other Leave">Other Leave</label>
    &nbsp;&nbsp;
    <label for="Reason of Leave">Reason of Leave:</label>
    <input type="text" name="reasonLeave" size="35" disabled="disabled" />        
    </strong> 
</td>
</tr> 

<?php
}
else
{
?>
<tr>
<td height="40" colspan="3" align="left">
    <strong>
    <input type="radio" name="optLeave" disabled="disabled" />
    <label for="Other Leave">Other Leave</label>
    </strong>
</td>
</tr> 

<?php
}                       
?>

おそらくJavaScriptを使用するとこの問題が解決するかもしれませんが、これに対する別の解決策を望んでいます。

4

1 に答える 1

2

アンダースコア()やコロン(:)などの一意の区切り文字で異なるプレフィックスを使用できる場合は、値に必要なものは何でも使用できます。病気休暇またはその他の理由でスリーブする

<input type="radio" name="optLeave" value="<?php echo "sleave_".$sLeave; ?>" onclick="disableTextarea()" /><label for="Sick">Sick</label>

<input type="radio" name="optLeave" value="<?php echo "uleave_".$uLeave; ?>" onclick="disableTextarea()" /><label for="Union">Union</label>

その後、ポストで爆発関数で値を分離することができ、値を取得します。

//use same separator here
$opt_leave = explode("_", $_REQUEST['optLeave']);
$leave_type = $opt_leave[0];
$leave = $opt_leave[1];
//now you can use $leave_type to check your conditions by switch or if conditional statements

if($leave_type == 'sleave') {
  // action on sick leave
} else if($leave_type == 'uleave') {
 // action on Union leave
}
于 2012-07-18T04:18:49.203 に答える