我有一个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
任何意见或建议都将不胜感激。
非常感谢
答案 0 :(得分:1)
如果要使用括号语法,则无法将其与句点语法结合使用。换句话说:
form.[position+row].value
应该是:
form[position+row].value
答案 1 :(得分:0)
现在100%工作。
应该是
根据machineghost的建议形成[“position”+ row] .value。