使用jquery更新数据

时间:2010-12-14 11:24:53

标签: jquery

我有一个列出数据库调用记录的页面。我想在每一行上都有一个“编辑”链接,它会弹出一个Jquery对话框,以便可以编辑该行。我的问题是如何将数据从选定行传递到jquery对话框以便可以编辑? 我有打开jquery弹出窗口的代码,但文本框是空的。

<div id="boxes">

<div id="dialog2" class="window">
<form method="post" action="update_books_a.php">
  <input name="name" type="text" value="<?php echo $ing['book_name']; ?>"/>
<input name="author" type="text" value="<?php echo $ing['author']; ?>"/> <input type="hidden" name="book_id" value="<?php print $ing['book_id'];?>" />

<input type="submit" value="Update" class="close"/> </form> </div>

myphp代码是

$select=mysql_query("select * from books where book_id='$book_id'") or die(mysql_error());
while($ing=mysql_fetch_array($select))
{
 ?>
<tr>
    <td><a href="#dialog2" name="modal"><?php echo $ing['book_name'];?></a></td>
    <td><?php echo $ing['author'];?></td></tr>

jquery代码是




$(document).ready(function() {

    //select all the a tag with name equal to modal
    $('a[name=modal]').click(function(e) {
        //Cancel the link behavior
        e.preventDefault();

        //Get the A tag
        var id = $(this).attr('href');

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set heigth and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});

        //transition effect
        $('#mask').fadeIn(1000);
        $('#mask').fadeTo("slow",0.8);

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top',  winH/2-$(id).height()/2);
        $(id).css('left', winW/2-$(id).width()/2);

        //transition effect
        $(id).fadeIn(2000);

    });

    //if close button is clicked
    $('.window .close').click(function (e) {
        //Cancel the link behavior
        e.preventDefault();

        $('#mask').hide();
        $('.window').hide();
    });

    //if mask is clicked
    $('#mask').click(function () {
        $(this).hide();
        $('.window').hide();
    });

});



body {
font-family:verdana;
font-size:15px;
}

a {color:#333; text-decoration:none}
a:hover {color:#ccc; text-decoration:none}

#mask {
  position:absolute;
  left:0;
  top:0;
  z-index:9000;
  background-color:#000;
  display:none;
}

#boxes .window {
  position:absolute;
  left:0;
  top:0;
  width:440px;
  height:200px;
  display:none;
  z-index:9999;
  padding:20px;
}



#boxes #dialog2 {
  background:url(../images/notice.png) no-repeat 0 0 transparent;
  width:326px;
  height:229px;
  padding:50px 0 20px 25px;
}

2 个答案:

答案 0 :(得分:0)

您可以使用.text()方法提取每个元素的文本值 如果您需要html值,可以使用.html()或yourNode.innerHTML

答案 1 :(得分:0)

表格中没有book_id,因此我无法为您填充隐藏的输入。但是下面的代码向您展示了如何为book_name和author做到这一点,所以希望这足以让您开始。

您需要在此行之后将代码添加到您的点击处理程序:

//Cancel the link behavior
e.preventDefault();

添加此代码:

// Copy book_name
$("#dialog2 input[name=name]").val($(this).text());

// Copy author
$("#dialog2 input[name=author]").val($(this).parent().next("td").text());