发布ID和新关键字值

时间:2010-12-31 01:52:48

标签: jquery

我正在尝试找出如何使用输入字段发布在一行内更改的新关键字的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和Cyber​​mate; - )

<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>

3 个答案:

答案 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()//使用它没问题......