0

私はプログラミング言語が初めてです。javascript を使用せずに、他のフィールドから値を取得し、同じフォームで他のフィールドに渡すことはできますか? 誰かが私に説明できますか?ありがとう。

このマイフォームページ

<form id="leave_form">
<table><tr>
<td width="70"><b>*</b> Date From:</td>
<td width="120"><span id="lv_date_from_btn"><input readonly class="field_required control" onchange="validateLeave('from')" id="lv_date_from" name="date_from" value="<?php echo $start_date?>" size="10" maxlength="10"/> <img src="images/calendar.gif"/></span></td>
</tr>
<tr>
<td width="70"><b>*</b> Date To:</td>
<td width="120"><span id="lv_date_to_btn"><input  readonly class="field_required control" onchange="validateLeave('to')" id="lv_date_to" name="date_to" value="<?php echo $end_date?>"  size="10"  maxlength="10"/> <img src="images/calendar.gif"/></span></td>
</tr>

<?php if ($userid == '609'):?>
<tr>
<td><b>*</b> Relief Staff: </td>
<td>

<select name="userid" id="frm_userid2" class="field_required control" onchange="validateLeave('relief')" >      
<?php
$leavefrom = $_REQUEST['from'];
$leaveto = $_REQUEST['to'];
if (empty($leavefrom))
{
echo '<option value="" selected disabled>Select...</option>';
}
else{
echo '<option value="" selected disabled>Select...</option>';                   
$sql = "
SELECT distinct fullname FROM core_user LEFT JOIN lms_tran ON lms_tran.userid = core_user.userid where core_user.userid NOT IN (SELECT userid  FROM lms_tran WHERE date_from BETWEEN '$leavefrom' AND '$leaveto' AND app_status = 'Approved') AND core_user.userid != 609 AND core_user.status = 'Y' ORDER by fullname ASC
                ";

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) 
{                       
echo '<option value="'.$row["userid"].'">'.$row["fullname"].'</option>';                    
}
}?>
</select>
</td>
</tr>
<?php endif; ?> 
    </table>
    </form> 

そしてこれはjavascriptです

function validateLeave(type)
{
    var days= jQuery('#frm_days').val();
    var from = jQuery('#lv_date_from').val();
    var to = jQuery('#lv_date_to').val();
    var relief = jQuery('#frm_userid2').val();

    if (type != 'check')
    {
        days_incorrect = true;
    }       
    if (type == 'days' || type == 'from')
    {
        to = '';
        relief = '';
    }   
    if (type == 'to')
    { 
        days = '';
    }       

    if ( 
        (
        (days == '' ? 0 : 1) + 
        (to == '' ? 0 : 1) + 
        (from == '' ? 0 : 1)        
        ) < 2
    )
    {
        days_correct = false;
        return;
    }

    days = parseFloat(days);
    jQuery('#frm_days').val(days);
    jQuery('.control').attr('disabled', true);
    jQuery('#lv_loading').show();       
    jQuery.post('index.php?_m=lms&_a=leave_validate&from='+from+'&to='+to, {from:from,to:to,days:days}, function(res){
        eval('var r = '+res+';');
        if (r.status == 'OK')
        {
            days_incorrect = false;
            if (r.to)
            {
                jQuery('#lv_date_to').val(r.to);
            }
            if (r.from)
            {
                jQuery('#lv_date_from').val(r.from);
            }
            if (r.days)
            {
                jQuery('#frm_days').val(r.days);
            }
        }           
        else if (r.status == 'HOLIDAYERROR')
        {
            alert('Incorrect leave start date. Leave start date can not fall into Weekend or Public Holidays');
            days_incorrect = true;
        }
        else 
        {
            alert('Incorrect leave  period. Please check back Leave Start, Leave End and Leave Days')
            days_incorrect = true;
        }
        jQuery('.control').attr('disabled', false);
        jQuery('#lv_loading').hide();
    }); 

}   

jQuery経由で値を渡すため、phpコードで値を返すことができませんでした。

4

1 に答える 1

1

いいえ、できません。インタラクティブな操作を行う唯一の方法は、表示する必要がある場合は JavaScript を使用することです。重要でない場合は、サーバーでこれを行うことができます。これには、2 番目の変数に最初の変数の値を代入します。

于 2012-06-18T06:31:09.040 に答える