2011-10-28 3 views
0

이 코드를 가지고 있는데, 제 문제와 관련이없는 코드를 제거했습니다. 내가 pl_aantal_kop[]의 값을 찾아 pl_tarief_ph[]두 개의 루프가 섞여 있습니다.

function uur_tarief(selectVeld, nr) 
{ 
    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 1) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[0].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[0].value; 
    } 

    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 2) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[1].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[1].value; 
    } 

    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 3) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[2].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[2].value; 
    } 

    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 4) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[3].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[3].value; 
    } 

    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 5) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[4].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[4].value; 
    } 

    if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 6) 
    { 
     document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[5].value; 
     document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[5].value; 
    } 
} 

에 자바 스크립트의 첫 번째 줄에서 시작 계수를 유지한다는 것이다 발생한 문제를 해당 매개 변수를 보내려고하고있어 자바 스크립트와

while ($row_pl = mysql_fetch_array($res_pl)) 
{ 
    // Uurtarief 
    $sql_uur = "SELECT 
       aantal_kop, 
       tarief_min, 
       tarief_max, 
       tijd_min, 
       tijd_max, 
       tijd_extra 
       FROM uurtarief 
       WHERE machine = '".$row_pl['machine']."' 
       ORDER BY aantal_kop ASC"; 

    if(!$res_uur = mysql_query($sql_uur)) 
    { 
     include('includes/errors/database_error.php'); 
    } 
    else 
    { 
     while ($row_uur = mysql_fetch_array($res_uur)) 
     { 
      ?> 
       <input type="text" name="tar_kop[]" size="8" value="<?php echo $row_uur['aantal_kop']; ?>" /> 
       <input type="text" name="tar_tarief[]" size="8" value="<?php echo $uurtarief; ?>" /> 
       <input type="text" name="tar_tijd_extra[]" size="8" value="<?php echo $row_uur['tijd_extra']; ?>" /> 
       <br /> 
      <?php 
     } 
    } 

    ?> 
<tr> 
    <td> 
     <input type="text" name="pl_aantal_kop[]" size="3" onChange="uur_tarief(this, <?php echo $i ?>)" value="" /> 
    </td> 
    <td> 
     <input type="text" name="pl_tarief_ph[]" size="4" value="" /> 
    </td> 
    </tr> 
<?php 
} 

while ($row_uur = mysql_fetch_array($res_uur)) 첫 루프에 속한 필드 대신 루프. 이 루프의 스크린 샷 아래.

제안 사항?

enter image description here

답변

0

이에 JS를 축소 할 수 있습니다 :

function uur_tarief(selectVeld, nr) 
{ 
    var index = document.getElementsByName('pl_aantal_kop[]')[nr].value; 

    document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[index - 1].value; 
    document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[index - 1].value; 
} 

이 코드를 시도하고 다시 게시 할 수 있습니까? JavaScript 코드를 어디에서 초기화하고 호출합니까? 게시 한 코드는 괜찮아 보이지만 (심각하게 부풀어 오름) 다른 곳에서 문제가 될 수 있습니다.

+0

값 == 1, 값 == 2 등은 어떻게됩니까? 그것들은 코드의 일부입니다. 그것들은 이미지에 게시 된 칼럼 중에서 선택할 수있는 숫자입니다. – Muiter

+0

당신의 값은 항상 인덱스 번호보다 하나 많습니다. 따라서'[index - 1]'. – Blender

관련 문제