Я использую плагин Jeditable и не понимаю, почему все параметры не указаны в запросе.ближайший ('tr') не работает с Jeditable
HTML перед визуализацией:
<tbody>
@foreach ($liste_eleve_note as $eleve_note)
<tr data-user-id="{{{ $eleve_note->id_personne }}}">
<td>{{{ $eleve_note->nom }}} {{{ $eleve_note->prenom }}}</td>
<td class="edit_area" >{{{ $eleve_note->note_num }}}</td>
<td class="edit_area" >{{{ $eleve_note->appreciation }}}</td>
</tr>
@endforeach
</tbody>
Вынесено HTML:
<tbody>
<tr data-user-id="3">
<td>HACKETT Steve</td>
<td class="edit_area" >22.00</td>
<td class="edit_area" ></td>
</tr>
<tr data-user-id="106">
<td>BRUFFORD Bill</td>
<td class="edit_area" >0.00</td>
<td class="edit_area" ></td>
</tr>
<tr data-user-id="107">
<td>LENNON John</td>
<td class="edit_area" ></td>
<td class="edit_area" ></td>
</tr>
</tbody>
JQuery:
$('.edit_area').editable($('#url_for_ajax').val()+'/edit_note_epreuve', {
indicator : 'Saving...',
tooltip : 'Click to edit...',
onblur : 'submit',
submitdata : {
'user_id' : $(this).closest('tr').data('user-id'),
'id_epreuve' : $('#id_epreuve').val(),
'_token' : $('meta[name="_token"]').attr('content')
},
onerror : function(settings,original,xhr) {
alert("It wasn't possible to edit. Try again");
console.log("XHR Status: " + xhr.status);
}
});
Запрос отправляется на сервер:
Отсутствует параметр user_id
. У нас есть параметры id
и value
, которые автоматически добавляются плагином, и у нас есть параметры _token
и id_epreuve
, которые были добавлены JavaScript.
Но не параметр user_id
.
Почему это происходит?
"* Мой HTML-код: *" (примечание непроверенной!) - это не (только) HTML; как выглядит HTML, когда этот скрипт закончил работать с ним? –
Я добавил последний html. Я не вижу ничего, что могло бы объяснить проблему. – Dom
'this' (в вашем объекте' submitdata') не означает, что вы (почти наверняка) хотите этого. Я думаю, вы ожидаете, что это «то, что было отредактировано», но оно фактически запускается сразу же после установки обработчика, поэтому это контекст, в котором вызывается '.editable()'. Скорее всего, это 'window', поэтому' $ (this) .closest ('tr') 'не собирается ничего сопоставлять. –