2014-09-08 2 views
0

У меня проблема с удалением полей с помощью функции js. Во-первых, я произвожу это такой же, как у меня есть записи в таблице базы данных:Удалить все поля javascript

function queryComposant($param) { 
    $query = "SELECT nom_" . $param . " FROM " . $param . ";"; 
    $result = connectdb()->query($query)or die("Err " . $query); 
    $resultat = $result->fetch(PDO::FETCH_OBJ); 
    echo '<table border = "1" id="table' . $param . '">'; 

    foreach ($resultat as $value) { 

    } 

    while ($resultat = $result->fetch(PDO::FETCH_OBJ)) { 

     echo '<tr>' 
     . '<form action="' . $param . 'Delete.php" method="post">'; 
     $n = "nom_" . $param; 
     $nom = $resultat->$n; 
     echo '<td>' . $nom . '</td>' 
     . '<input id="' . $param . 'delete" type="hidden" name="delete" value="'.$nom.'" />' 
     . '<td><input type="button" onclick="remove();" value="Supprimer" /></td>' 
     . '</form>' 
     . '</tr>'; 
    } 

    echo '</table>'; 
} 

, и я хотел бы удалить в таблицу Целые tr каждый раз, когда я нажимаю на кнопку «Supprimer».

function remove(){ 
    $().live('click',function(){ 
     var whichtr = $(this).parent().parent(); 
     whichtr.remove(); 
    }); 
} 

что я делаю неправильно? Я использовал $(this).parent().parent();, чтобы перейти от button к td и от td до tr, а затем попробуйте удалить его, но функция удаляет только кнопку.

Я также попытался это, не больше успеха:

function remove(){ 
    $().live('click',function(){ 
     var whichtr = $(this).closest("tr"); 
     whichtr.remove(); 
    }); 
} 

ответ

1

Вы не должны создать обработчик, чтобы связать событие щелчка на «Supprimer», как только вы имели это событие непосредственно к метод OnClick кнопки

так что вы можете написать что-то вроде этого:

function remove(){ 
    var whichtr = $(this).closest("tr"); 
    whichtr.remove(); 
} 

(не проверено)

Я надеюсь, что это может помочь

0

попытка ниже

<input type="button" onclick="remove(this);" value="Supprimer" /> 

метод Remove следующим образом: -

function remove(e){ 
     $(e).closest('tr').remove(); 
} 
2

Поскольку встроенный Javascript обработчик событий считается плохой практикой, я снял их и сделал щелчок обработчик события в самом javascript.

Предполагая, что этот пример HTML:

<table> 
    <tr> 
     <form> 
     <td></td> 
     <input type="hidden" /> 
     <td> 
     <input type="button" class="remove" value="Supprimer" />    
     </td> 
     </form> 
    </tr>  
    <tr> 
     <form> 
     <td></td> 
     <input type="hidden" /> 
     <td> 
     <input type="button" class="remove" value="Supprimer" />    
     </td> 
     </form> 
    </tr> 
</table> 

следующих JS будет работать:

$('table').on('click', '.remove', function() { 
    $(this).closest('tr').remove(); 
}); 

Working Example

+0

код прекрасно работает на jfiddle вы дали, но все равно удаляет кнопку только на моих code..but спасибо за ответ anyway.still глядя, я держать вас в курсе. – antares667367

+0

Я нашел решение, используя ваш код. Я даю имя класса, и я включаю код js в onclick(); , Это то, что вы хотели сказать? – antares667367

+0

жаль, что я не могу проголосовать за вас, так как моя репутация ниже 15 – antares667367

0

Скопировано от вопроса:

Works, если я включить JS код непосредственно в g enerated форма:

function queryComposant($param) { 
    $query = "SELECT nom_" . $param . " FROM " . $param . ";"; 
    $result = connectdb()->query($query)or die("Err " . $query); 
    $resultat = $result->fetch(PDO::FETCH_OBJ); 
    echo '<table border = "1" id="table' . $param . '">'; 

    foreach ($resultat as $value) { 
    } 

    while ($resultat = $result->fetch(PDO::FETCH_OBJ)) { 

     echo '<tr>' 
     . '<form action="' . $param . 'Delete.php" method="post">'; 
     $n = "nom_" . $param; 
     $nom = $resultat->$n; 
     echo '<td>' . $nom . '</td>' 
     . '<input id="' . $param . 'delete" type="hidden" name="delete"  value="'.$nom.'"  />' 
     . '<td>' 
     . '<input type="button" onclick="$(\'table\').on(\'click\', \'.remove\', function() {' 
     . '$(this).closest(\'tr\').remove();});" class="remove" value="Supprimer" />' 
     . '</td>' 
     . '</form>' 
     . '</tr>'; 
    } 
    echo '</table>'; 
} 
Смежные вопросы