使用Javascript将变量连接到表单输入值

时间:2012-07-11 21:43:15

标签: javascript jquery variables concatenation

我有一个PHP while循环,它生成一个包含input标记的表。通过附加输入框名称和循环值,每个输入框都有一个唯一的名称。

<?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是循环实例。所以对于position1,onchange将是onchange“get(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语句中将两者连接在一起。所以get(1)将产生:

postvarposition: form.position1.value

我的想法是这样的,但是没有用:

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

如何将输入框的名称与行连接?

一如既往地感谢您的帮助。

更新

以下代码适用于我手动将“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>

Google Chrome(F12)输出错误Uncaught ReferenceError: position is not defined

任何意见或建议都将不胜感激。

非常感谢

2 个答案:

答案 0 :(得分:1)

如果要使用括号语法,则无法将其与句点语法结合使用。换句话说:

form.[position+row].value

应该是:

form[position+row].value

答案 1 :(得分:0)

现在100%工作。

应该是

根据machineghost的建议形成[“position”+ row] .value。

相关问题