我的PHP文件末尾有这个:
<script type="text/javascript>"
$("#id").on("click", "#otherId", function(e)
{
var html = "<input class='id' type='text' size='5' />";
var row = $(this).closest("#addoid").html(html);
row.find("input").focus();
row.find('input').change( function(e)
{
var value = $(this).val();
var fid = $("input#idName").val();
$.ajax({
type: "POST",
url: "page.php",
data: { entryId: fid, val: value }
})
.done(function( msg ) {
alter("data: " + msg);
});
});
</script>
</body>
html是这样的:
<div id="id">
<div id="otherId">
<input id="idName" type="hidden" value="1234" />
<button type="button" id="otherId">Add</button>
</div>
<div id="otherId">
<input id="idName" type="hidden" value="1235" />
<button type="button" id="otherId">Add</button>
</div>
<div id="otherId">
<input id="idName" type="hidden" value="1236" />
<button type="button" id="otherId">Add</button>
</div>
</div>
我将早期的jquery代码删除了,但基本上,当按下Add按钮时,它会更改为输入字段,如果用户将id放入输入字段,它将显示一个链接(on blur)或如果没有输入任何内容,请返回添加按钮。
到目前为止它正在运作,但是
var fid = $("input#idName").val();
正在使用下一个ID(而不是1234,它是发布1235)。
我是jquery的新手。我四处搜寻并尝试了几种不同的东西,但我无处可去。
感谢。
ADDITION
为了使这个更清楚,我有一个用foreach
循环填充的表(使用php),它从数据库中提取记录。
看起来像这样:
<div id="list">
<table>
<?php foreach ($data as $value):?>
<tr>
<td>
<div class="row">
<button class="add">Add</button>
<input class="hiddenId" type="hidden" name="hiddenName" value="<?php echo $value['id']?>" />
</div>
</td>
</tr>
<?php endforeach?>
</table>
</div>
就像我之前解释的那样,当点击“添加”按钮时,它会变成一个输入字段。
在更改(输入字段)时,我需要ajax发送包含两个输入字段值的请求。
我遇到的问题是我无法获得隐藏输入的正确值。 jquery从另一行获取值,而不是正确的行。
我似乎无法弄清楚这一点,并且诚实地尝试了许多不同的方式,包括一些可能被认为是非常规的方式。
感谢您的帮助。
答案 0 :(得分:0)
请先重命名输入ID,因为ID必须是唯一的。