2013-10-24 4 views
0

У меня есть таблица, созданная с использованием цикла while, который отображает список элементов, чтобы пользователь мог выбрать элемент для удаления, который выполняется через ajax.Передайте ближайшее значение через ajax

Я хотел бы использовать JQuery's ближайший атрибут, но я не могу выработать правильный синтаксис. Выход я получаю от этого Object Object

стол

<form id="del_opinion"> 
    <table id="asked_list"> 
<?php 
    while($row = mysqli_fetch_assoc($result)){ 
    <tr> 
     <td> 
     <?php echo $row['name']; ?> 
     </td> 
    <td> 
     <input type="button" name="del_question" value="" class="trash_btn"> 
      <input type="hidden" class="id_question" name="question_id" value="<? echo $row['questionID']; ?>"> 
      <input type="hidden" class="id_user" name="user" value="<?php echo $id; ?>" >  
    </td> 
    </tr> 
<? } ?> 
    </table> 
</form> 

Аякса

<script> 
$(document).ready(function() { 
$('.trash_btn').click(function(){ 
    var question = $(this).closest('.id_question'); 
    var user = $(this).closest('id_user'); 
$.ajax({ 
     url: 'opinion_del.php', 
     type:'POST', 
     data: 'question='+ question +'&user='+user, 
     dataType: 'json', 
     success: function(response){ 
       $('#responses_table').html(response); 
      }, 
      error:function (xhr, ajaxOptions, thrownError){ 
     alert(thrownError); 
    } // End of success function of ajax form 
     }); // End of ajax call  

    }); 
}); 
</script> 

PHP сделали для тестирования

$question_id = $_POST['question']; 
$id = $_POST['user']; 
$sql = "SELECT * FROM adviceQuestion WHERE questionID = '$question_id'"; 
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli)); 
if($result){ 
    $output = $question_id; 
} 
echo json_encode($output); 

Если я печатаю буквальное значение $output работает нормально, и если я набираю буквальное значение в любом из jquery vars они правильно работают тоже, так что я уверен, что это что-то делать с ближайшим синтаксисом

Я также попытался добавить класс к строке таблицы называется details и использованием

var question = $(event.target).closest('.details').find('.id_question'); 

Если I бдительного вопроса, говорит [object Object]

+0

Попробуйте удалить DATATYPE: '' Json Потому что: echo json_encode ($ output); вы выводите и идентификатор, так что это строка или попытаться вывести массив ... У меня было что-то подобное, возможно, не помню. Но вы код хорошо смотрятся мне ... – Froxz

+0

это все то же самое, просто говорит [object Object] – tatty27

+0

, если я напечатаю буквальное значение в «var user», значение которого правильно передается – tatty27

ответ

0
var user = $(this).closest('id_user'); 

Изменения в этой

var user = $(this).closest('.id_user'); 

Вы не указали «c». точка))) Может поможет

+0

хорошо замечено, но такая же проблема – tatty27

0

OK, разузнали его ...

Изменено этот

var question = $(this).closest('.id_question'); 
var user = $(this).closest('id_user'); 

к

var question = $(this).next('.id_question').val(); 
var user = $(this).next('.id_user').val(); 
Смежные вопросы