2012-07-11 90 views
0

我有一個PHP while循環,它會生成一個包含input標籤的表。通過追加輸入框名稱和循環值,每個輸入框都被賦予一個唯一的名稱。使用Javascript連接變量到表單輸入值

<?php 
$i=1; 
$r=0; 
while($i<=$positionjobrows) 
{ 
    ?> 
    <tr> 
     <td> 
      <?PHP echo $i; ?> 
     </td> 
    <td> 
    <input type=text NAME="position<?PHP echo $i; ?>" id="position<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" value="<? echo mysql_result($resultpositionjob,$r,0);?>"> 
    </td> 
    <td> 
    <input type=text NAME="job<?PHP echo $i; ?>" id="job<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" value="<? echo mysql_result($resultpositionjob,$r,1);?>"> 
    </td> 
    <td> 
    <SELECT NAME="person<?PHP echo $i; ?>" id="person<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" onchange="get(<? echo $i; ?>);"> 
    <OPTION VALUE=0 > 
    <?=$optionpeople?> 
    </SELECT> 
    </td> 
    <td> 
    <div id="training<?PHP echo $i; ?>"><font color=grey size=2>Training details will be shown here</div> 
    </td> 
    </tr> 
    <?PHP 
    $i++; 
    $r++; 
    } 
    ?> 

我想修改我的javascript/jquery腳本來使用每個生成的輸入框名稱。

例如,輸入框的位置將被命名爲position1,position2,position3等。我使用onchange =「get(row)」調用腳本,其中row是循環實例。所以對於位置1的平變化將是平變化「得到(1)」

它傳遞給我的javascript/jQuery腳本:

<script type="text/javascript"> 
     function get(row){ 

     $.post ('getpeopleinjobs.php',{ 
     postvarposition: form.[position+row].value, 
     postvarjob: form.job+row.value, 
     postvarperson: form.person+row.value, 
     postrow: row}, 
      function(output){ 
       $('#training'+row).html(output).show(); 
        }); 
     alert(postvarposition); 

     } 

</script> 

正如你所看到的,我想將變量postvarposition設置爲id輸入框(位置)+行號。我想在form.position.value聲明中將兩者連接在一起。因此,獲得那麼(1)將產生:

postvarposition: form.position1.value 

我的思路是沿着這些線路,但不工作:

postvarposition: form.[position+row].value, 

我如何可以連接針對該行的輸入框的名字嗎?

非常感謝您的幫助。下面

UPDATE

此代碼的第一行,我手動添加「1」到輸入標籤名稱。

<script type="text/javascript"> 
     function get(row){ 
     alert(row); 
     $.post ('getpeopleinjobs.php',{ 
     postvarposition: form.position1.value, 
     postvarjob: form.job1.value, 
     postvarperson: form.person1.value, 
     postrow: row}, 
      function(output){ 
       $('#training'+row).html(output).show(); 
        }); 
       } 
</script> 

我已經然後試圖去改變它由machineghost但仍不起作用的建議。我已經確認變量行的值是1,並帶有警報消息。

<script type="text/javascript"> 
     function get(row){ 
     alert(row); 
     $.post ('getpeopleinjobs.php',{ 
     postvarposition: form[position+row].value, 
     postvarjob: form[job+row].value, 
     postvarperson: form[person+row].value, 
     postrow: row}, 
      function(output){ 
       $('#training'+row).html(output).show(); 
        }); 
       } 
</script> 

谷歌瀏覽器(F12)。OUPUTS錯誤Uncaught ReferenceError: position is not defined

任何意見或建議,將不勝感激。

非常感謝

回答

1

如果你想使用你不能週期的語法結合起來的括號語法。換句話說:

form.[position+row].value 

應該是:

form[position+row].value 
0

現在的工作100%。

應該是

形式[ 「位置」 +行]。價值按照從machineghost建議。