2010-12-14 18 views
0

Ich habe eine Seite, die Datensätze von einem Datenbankaufruf auflistet. Ich möchte einen "Edit" -Link in jeder Zeile haben, der ein Jquery-Dialogfeld öffnet, damit die Zeile bearbeitet werden kann. Meine Frage ist, wie übermittele ich die Daten aus der ausgewählten Zeile in das Jquery-Dialogfeld, damit es bearbeitet werden kann? Ich habe den Code, der jquery popup öffnet, aber die Textfelder sind leer.Daten mit jquery aktualisieren

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

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

der jquery Code ist




$(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; 
}

Antwort

0

Sie können den Text Wert jedes Elements extrahieren die .text() Methode.
Wenn Sie den HTML-Wert benötigen, können Sie .html() oder yourNode.innerHTML

+0

Und dann, dass der Text in die Textfelder stehen zu '.val mit () ' –

+0

newibi jquery hier könnte Ihren Punkt nicht bekommen – hunter

0

Sie haben nicht die book_id in der Tabelle verwenden, so kann ich den versteckten Eingang für Sie nicht füllen. Aber der folgende Code zeigt Ihnen, wie Sie es für Buch_Name und Autor tun, also hoffentlich gibt Ihnen genug, um damit zu beginnen.

benötigen Sie den Code in Ihrem Click-Handler, nach dieser Zeile hinzufügen:

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

diesen Code hinzufügen:

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

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