表格在表格内不起作用

时间:2014-01-29 08:52:42

标签: javascript php jquery

我正在通过AJAX从php文件生成一个表并在html页面上显示它。 我希望能够编辑一行并将一些值更改为我的数据库。虽然我为每个<tr>制作了一个表单,但它似乎无法正常工作,在提交时它什么都不做。 (我知道这可能不是解决这个问题的最好方法。任何建议都会受到赞赏。)

php code

if($_GET['function']=="editteam")
{
    $sql=mysql_query("SELECT * FROM tbl_Team")
    or die(mysql_error());

    echo '<table border="1"><thead><tr><th>Team Name</th><th>Location</th><th>Edit</th></tr></thead>';
    while($row=mysql_fetch_array($sql))
    {
        echo '<tr>';
        echo '<td>'.$row['team_name'].'</td>';
        echo '<td>'.$row['team_location'].'</td>';
        echo '<td><button class="shownextrow">Edit</button></td>';
        echo '</tr>';   
        echo '<form action="editteam.php" method="post">';  
        echo '<tr style="display:none" bgcolor="#FF0000">'; 
        echo '<td><input type="text" name="team_name" value="'.$row['team_name'].'"></td>';
        echo '<td><input type="text" name="team_location" value="'.$row['team_location'].'"></td>';
        echo '<td><input type="hidden" name="team_id" value="'.$row['team_id'].'"><input type="submit" value="Ok"></td>';
        echo '</tr>';
        echo '</form>';

    }       
    echo '</table>';

}

JS显示下一行(点击时可编辑的那一行)

$(function() {
    $('.editteam').on('click', '.shownextrow', function() { 
      $(this).closest("tr").next().show();
    });
});

3 个答案:

答案 0 :(得分:1)

这会修复它,把表格放在桌子外面。

if($_GET['function']=="editteam")
{
    $sql=mysql_query("SELECT * FROM tbl_Team")
    or die(mysql_error());

    echo '<form action="editteam.php" method="post"><table border="1"><thead><tr><th>Team Name</th><th>Location</th><th>Edit</th></tr></thead>';
    while($row=mysql_fetch_array($sql))
    {
        echo '<tr>';
        echo '<td>'.$row['team_name'].'</td>';
        echo '<td>'.$row['team_location'].'</td>';
        echo '<td><button class="shownextrow">Edit</button></td>';
        echo '</tr>';   
        echo '<tr style="display:none" bgcolor="#FF0000">'; 
        echo '<td><input type="text" name="team_name" value="'.$row['team_name'].'"></td>';
        echo '<td><input type="text" name="team_location" value="'.$row['team_location'].'"></td>';
        echo '<td><input type="hidden" name="team_id" value="'.$row['team_id'].'"><input type="submit" value="Ok"></td>';
        echo '</tr>';

    }       
    echo '</table></form>';

}

答案 1 :(得分:0)

试试这个

if($_GET['function']=="editteam")
{
    $sql=mysql_query("SELECT * FROM tbl_Team")
    or die(mysql_error());

    echo '<table border="1"><thead><tr><th>Team Name</th><th>Location</th><th>Edit</th></tr></thead>';
    while($row=mysql_fetch_array($sql))
    {
        echo '<tr>';
            echo '<td>'.$row['team_name'].'</td>';
            echo '<td>'.$row['team_location'].'</td>';
            echo '<td><button class="shownextrow">Edit</button></td>';
        echo '</tr>';   

        echo '<tr style="display:none" bgcolor="#FF0000">'; 
            echo '<td colspan="3">';
                echo '<form action="editteam.php" method="post">';  
                    echo '<table>';
                    echo '<tr>';
                        echo '<td><input type="text" name="team_name" value="'.$row['team_name'].'"></td>';
                        echo '<td><input type="text" name="team_location" value="'.$row['team_location'].'"></td>';
                        echo '<td><input type="hidden" name="team_id" value="'.$row['team_id'].'"><input type="submit" value="Ok"></td>';
                    echo '</tr>';
                    echo '</table>';

                echo '</form>';
            echo '</td>';
        echo '</tr>';


    }       
    echo '</table>';

}

编辑:错过/

答案 2 :(得分:0)

请勿在{{1​​}}和<form>之间或<table><tr>之间放置<tbody>。您可以将其放在<tr>之外或<table><tr>之间。