我正在尝试找出如何使用输入字段发布在一行内更改的新关键字的ID和值。
我基本上做一个mysql查询来收集关键字行,然后在输入字段中显示关键字,旁边有一个保存按钮。如果单击“保存”,我想发布该行的id和新关键字值。
我只能让第一行起作用,一位朋友帮助我使用jquery获取id但是我可以修改以获得关键字值吗?
我的HTML / PHP
<?php
$sql = "SELECT * FROM Tags ORDER BY name";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$keyword = $row['name'];
?>
<tr id="<?php echo $id;?>">
<td><?php echo $id;?></td>
<td><?php echo $keyword;?></td>
<td><input type="text" name="keyword" id="newkeyword" value="<?php echo $keyword;?>"><a class="savenewkeyword" >Save</a></td>
<td><a id="deleteKeyword">x</a></td>
</tr>
<?php } ?>
我的JAVASCRIPT
$('table td .savenewkeyword').click(function(){
var id = $(this).parent().parent().attr('id');
var name = $('input#newkeyword').attr('id');
data = 'id=' + id + '&name=' + name;
var parent = $(this).parent().parent();
$.ajax(
{
type: "POST",
url: "update/updatekeyword.php",
data: data,
cache: false,
success: function()
{
parent.fadeOut('slow');
parent.fadeIn('slow');
}
});
});
所以回顾一下,即时尝试为每一行发布id和新关键字值。
非常感谢任何帮助。
也很快新年快乐; - )
约翰
已解决 - 谢谢DSKVR和Cybermate; - )
<script type="text/javascript" charset="utf-8">
$('table td .savenewkeyword').click(function(){
var id = $(this).parents('tr').attr('id');
var name = $('input#newkeyword', $(this).parent()).attr('value');
data = 'id=' + id + '&name=' + name;
var parent = $(this).parent().parent();
$.ajax({
type: "POST",
url: "update/updatekeyword.php",
data: data,
cache: false,
success: function()
{
parent.fadeOut('slow');
parent.fadeIn('slow');
}
});
});
</script>
答案 0 :(得分:1)
两件事,
您需要从input
获取值,而不是 ID 。
使用var name = $('input#newkeyword').attr('id');
var name = $('input#newkeyword').attr('value');
你应该使用.parents('tr')
而不是.parent().parent()
,虽然它们都有效,但是如果不引用javascript中的HTML,就会更容易理解。
希望这会有所帮助,建议编辑说明如下。
$('table td .savenewkeyword').click(function(){
var id = $(this).parents('tr').attr('id');
var name = $('input#newkeyword').attr('value');
data = 'id=' + id + '&name=' + name;
var parent = $(this).parent().parent();
$.ajax({
type: "POST",
url: "update/updatekeyword.php",
data: data,
cache: false,
success: function()
{
parent.fadeOut('slow');
parent.fadeIn('slow');
}
});
});
答案 1 :(得分:1)
您对所有重复的输入框使用相同的ID
<input type="hidden" value="<?php echo $id;?>">
文本字段旁边的#newkeyword
更改行:
var name = $('input#newkeyword').attr('id');
to
var name = $('input#newkeyword', $(this).parent()).attr('id');
答案 2 :(得分:0)
尝试这个
$.get('url: "update/updatekeyword.php',{
id: id,
name: name
},
function(data)
{
parent.fadeOut('slow');
parent.fadeIn('slow');
}
});//end of get()
编辑:当然你可以使用$ .ajax()//使用它没问题......