2014-01-29 3 views
0

Я создаю таблицу из файла php через AJAX и показываю ее на html-странице. Я хочу, чтобы иметь возможность редактировать строку и изменять некоторые значения в моей базе данных. Хотя я делаю форму для каждого <tr>, он, похоже, не работает, и на подаче это ничего не делает. (Я знаю, что это, вероятно, не лучший способ приблизиться к этому. Любые предложения будут оценены.)Форма не будет работать внутри таблицы

PHP код

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(); 
    }); 
}); 
+1

вы должны поставить форму в ' форме здесь' –

+0

вы должны поставить форму вне таблицы '

. ..
' –

+0

Или вы можете использовать jquery ajax. –

ответ

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

} 

EDIT: пропускал /

+0

Это должно заставить меня двигаться, он отображает только первый результат из БД и других при щелчке, но я буду работать над этим и исправить это. Спасибо – LefterisL

+0

Одна из таблиц не закрылась должным образом. Должно быть ''. Работает как шарм. – LefterisL

+0

@TerisL благодарит за обновление –

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

} 
+0

Я подумал, что если это и попробовал, но когда я нажму кнопку «Изменить», чтобы показать следующую строку, она принимает его как отправку, я догадываюсь, и получает меня в editteam.php – LefterisL

+0

Изменен «показанныйextrow» на тип кнопки, но теперь он возвращается и показывает последний тр таблицы, который был распечатан – LefterisL

+0

Это отдельная проблема. Используйте jquery, чтобы помочь с этим. '$ (« кнопка формы »). click (function (e) {e.preventDefault());' –

Смежные вопросы