【发布时间】:2012-07-11 21:43:14
【问题描述】:
我有一个 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 是循环实例。所以对于位置 1,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 的建议进行更改,但这仍然不起作用。我已经确认变量 row 的值为 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
任何意见或建议将不胜感激。
非常感谢
【问题讨论】:
标签: javascript jquery variables concatenation