У меня есть динамический список записей, которые я показываю в таблице с каждой строкой, имеющей две кнопки, один из них возьмет пользователя на страницу для просмотра/редактирования данных, а другой - для удаления элемента строки.
Я пытаюсь выяснить, как создать javascript, чтобы вытащить скрытое значение lead_id только для этой строки, если выбрана одна из этих кнопок.
Я понимаю, как вытаскивать значения из одного результата из именованного элемента с помощью js, просто имея проблемы с пониманием того, как извлечь единственный результат из строки, на которую нажата кнопка.
Вот HTML:
<table id="lead_list" width="100%">
<th>
<tr>
<td><strong>Date</strong></td>
<td><strong>First Name</strong></td>
<td><strong>Last Name</strong></td>
<td><strong>Email</strong></td>
<td><strong>Company</strong></td>
<td><strong>Lead Status</strong></td>
<td><strong>Actions</strong></td>
</tr>
</th>
<tr>
<td>2014-03-06</td>
<td>Bob</td>
<td>Wilson</td>
<td><a href="mailto:[email protected]">[email protected]</a></td>
<td>MyFunLIFE</td>
<td>Subscribed</td>
<td><input type="hidden" name="lead_id" value="379" />
<input type="button" class="view-edit-lead" value="View/Edit" />
<input type="button" class="delete-lead" value="Delete" /></td>
</tr>
<tr>
<td>2014-03-06</td>
<td>Tom</td>
<td>Shuemate</td>
<td><a href="mailto:[email protected]">[email protected]</a></td>
<td>MyFunLIFE</td>
<td>Subscribed</td>
<td><input type="hidden" name="lead_id" value="377" />
<input type="button" class="view-edit-lead" value="View/Edit" />
<input type="button" class="delete-lead" value="Delete" /></td>
</tr>
<tr>
<td>2014-03-06</td>
<td>Biggie</td>
<td>Smalls</td>
<td><a href="mailto:[email protected]">[email protected]</a></td>
<td>MyFunLIFE</td>
<td>Subscribed</td>
<td><input type="hidden" name="lead_id" value="376" />
<input type="button" class="view-edit-lead" value="View/Edit" />
<input type="button" class="delete-lead" value="Delete" /></td>
</tr>
</table>
Вот текущие js, которые я использую для этого:
$('td.wplp-inputs input').click(function(){
// Don't allow access to the page while we process data.
$.blockUI({
message: '<h1>Just a moment</h1><br /><br />Lead is being deleted...',
css: {
top: ($(window).height() - 400) /2 + 'px',
left: ($(window).width() - 400) /2 + 'px',
width: '400px',
Height: '250px',
padding: '10px'
}
});
// if the button class is
if( $(this).is('.delete-lead') ) {
/// delete
data = new Object();
data.lead_id = $(this).siblings('input[type="hidden"]').val();
alert(JSON.stringify(data));
data.action = "delete_lead"; //the action to call
data._ajax_nonce = wplpajaxobjfront.nonce; // This is the name of the nonce setup in the localize_script
data.ajaxUsed = "yes";
// Define the URL for the AJAX to call
var url = wplpajaxobjfront.ajaxurl;
//alert( JSON.stringify( data ) );
//alert( JSON.stringify( url ) );
$.post(url, data, function(response) {
alert(response);
window.location.reload();
//window.location.href = response;
$.unblockUI();
//window.open(response,"_blank","","");
});
} else {
/// edit/view
alert(reponse);
}
return false; //Do not remove!
});
Как только у меня будет метод получения данных только из одной строки таблицы для отправки, в частности lead_id, я смогу передать ее моей функции PHP без проблем.
Проблема с js также не позволяет передавать другие значения в данные var, единственным элементом, который в настоящее время возвращается из вызова ajax, является lead_id без входящего имени, то же самое для data.action, data.ajaxUsed и data._ajax_nonce и т.д.,
Заранее благодарю вас за любую помощь в этом отношении.
вот простой способ получить значение lead_id
для каждой строки при нажатии кнопки
$('td input').click(function(){
var el = $(this).siblings('input[type="hidden"]');
// to get input name
var data = {}; /// create new object
data[el.attr('name')] = el.val() ; // lead_id to data
data['action'] = 'delete_lead'; // add action to data
console.log(data); // log data to check, open your console and see data
if( $(this).is('.delete-lead') ) {
/// delete
} else {
/// edit/view
}
});
data.lead_id
возвращает входное значение