1

私はこのjqueryを持っています。次に、foreachを使用してデータベース内のすべてのレコードを表示しました。

今私がやろうとしているのは、値をjqueryに渡すことですが、値は最初のtdだけで読み取られました。

私のjquery

jQuery('#nannyedit').click(function(){
    jQuery('<img src="<?php echo plugins_url( 'images/jon-loader.gif', __FILE__ ); ?>" id="loading" />').appendTo("#container");
    var unanny = jQuery(this).parent().siblings("input[name=nanny]:first").val();
    var access = jQuery( 'input[name=access]' ).val();

    alert( unanny );
    jQuery.ajax({
        type: "GET",
        url: "<?php echo plugins_url( 'edit.php', __FILE__ ); ?>",
        data: { user_login: unanny, access: access },
        dataType: 'html',
        target: '#tab-1',
        success: function(data){
            jQuery("#container").find('img#loading').remove();
            jQuery("#container").html(data);
        }
    })
}); 

私のhtml

<table cellpadding="5" cellspacing="0">
    <thead>
    <tr>
        <th>Username</th>
        <th>Email</th>
        <th>First Name</th>
        <th>Middle Name</th>
        <th>Last Name</th>
        <th>Status</th>
        <th>Photo</th>
        <th>Resume</th>
        <th>Date</th>
        <th>Option</th>
     </tr>
    </thead>
    <tbody>
<?php
global $wpdb;
$mynanny = $wpdb->get_results( "SELECT * FROM jon_nanny" );
$color1 = "#FDF7E1"; 
$color2 = "#FFFFFF"; 
$row_count = 0;
foreach ($mynanny as $nanny) {
    $mynannyphoto = $wpdb->get_row( "SELECT * FROM jon_nanny_photo WHERE user_login = '".$nanny->user_login."' " );
    $mynannyresume = $wpdb->get_row( "SELECT * FROM jon_nanny_resume WHERE user_login = '".$nanny->user_login."' " );
$row_color = ($row_count % 2) ? $color1 : $color2;
$uploads = wp_upload_dir();
$upload_dir = ( $uploads['url'] );
    ?>
        <tr>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->user_login; ?></td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->email; ?></td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->fname; ?></td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->mname; ?></td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->lname; ?></td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->user_status; ?></td>
            <td style="background-color:<? echo $row_color; ?>">
            <img src="<?php echo $upload_dir.'/'.$mynannyphoto->imgname; ?>" width="150" />
            </td>
            <td style="background-color:<? echo $row_color; ?>">
            <a href="<?php echo $upload_dir.'/'.$mynannyresume->resume; ?>" />
                <img src="<?php echo plugins_url( 'images/resume.png', __FILE__ ); ?>" />
            </a>
            </td>
            <td style="background-color:<? echo $row_color; ?>"><?php echo $nanny->date; ?></td>
            <td style="background-color:<? echo $row_color; ?>" id="getnan">
            <?php
            $url = admin_url();    
            ?>
            <input type="hidden" name="nanny" value="<?php echo $nanny->user_login;?>" />
            <input type="hidden" name="access" value="nanny" />
            <a href="#" id="nannyedit">
                <img src="<?php echo plugins_url( 'images/edit-file-icon.png', __FILE__ ); ?>" />
            </a>
            <a href="">
                <img src="<?php echo plugins_url( 'images/delete-file-icon.png', __FILE__ ); ?>" />
            </a>
            <a href="" title="View">
                <img src="<?php echo plugins_url( 'images/Document-icon.png', __FILE__ ); ?>" />
            </a>
            </td>
        </tr>
<?php
$row_count++;
}       
?>
    </tbody>
</table>

私のjqueryは間違っていますか?教えてくださいありがとうございます。

4

2 に答える 2

0

問題は、foreach ループで #nannyedit を使用していることです。

id 属性は、HTML 要素の一意の ID を指定します (値は HTML ドキュメント内で一意である必要があります)。

コードを変更してください:

スクリプト内:

jQuery('.nannyedit').click(....

foreachで:

<a class='nannyedit'> ...
于 2013-02-01T11:32:03.883 に答える
0

foreach ループを while に変更

 while($mynanny = $wpdb->get_results( "SELECT * FROM jon_nanny" )){
于 2013-02-01T11:29:30.530 に答える