所以我遇到了一個問題,我似乎無法弄清楚,所以我伸出手來看看是否有人可以幫助我。
我有一個名為的方法show_instagram_table(),它具有以下內容:
private function show_instagram_table(): string
{
$table = '';
if ($authenticated_users = get_option('instagram_authenticated_users')) {
foreach ($authenticated_users as $authenticated_user) {
$table .= '<table ><tbody>';
// ----------- Remove other items non-needed ---------------
if (Instagram::get_items()) {
$table .= $this->show_authenticated_buttons($authenticated_user);
}
$table .= '</tbody></table>';
}
}
return $table;
}
這要求show_authenticated_buttons():
private function show_authenticated_buttons($user): string
{
$buttons = '<tr>';
$buttons .= $this->show_deauthorize_instagram_button($user);
$buttons .= '</tr>';
return $buttons;
}
這要求show_deauthorize_instagram_button():
private function show_deauthorize_instagram_button($user): string
{
return '<td><button style="margin-right: 5px">Deauthorize</button>';
}
使用 AJAX,當單擊按鈕時,將針對該方法并將回應發送回 PHP:
所以..
jQuery('.instagram-deauthorize').click(function(e) {
e.preventDefault();
const data = {
'action': 'deauthorize_instagram_via_button',
};
jQuery.post(instagram_object.ajax_url, data, function() {
window.location = url;
});
});
將觸發此方法(我已經測驗過,它洗掉了選項):
public function deauthorize_instagram_via_button($user)
{
if (!get_option('instagram_authenticated_users')) {
return;
}
$users = get_option('instagram_authenticated_users');
if (count($users) === 1) {
delete_option('instagram_authenticated_users');
$this->instagram->delete_cache();
}
exit;
}
這是我卡住的地方:
我想authenticated_user在 foreach 中從show_instagram_table一路發送資料到我的deauthorize_instagram_via_button()方法,但我不可能定位它。
有誰知道我可以改變/改進什么?我已經嘗試使用$user引數傳遞它,但沒有運氣。
(抱歉缺少圖片,我不允許發布它們)。
謝謝大家!
uj5u.com熱心網友回復:
您可以為每一行再添加一個屬性。你可以使用類似data-id或其他的東西。
例如 :
private function show_authenticated_buttons($user): string
{
$buttons = '<tr data-id="'.$user->id.'">';
$buttons .= $this->show_deauthorize_instagram_button($user);
$buttons .= '</tr>';
return $buttons;
}
然后,您可以獲取每個用戶 ID(通過使用$(this).attr("data-id"))。
jQuery('.instagram-deauthorize').click(function(e) {
e.preventDefault();
const data = {
'action': 'deauthorize_instagram_via_button',
'user_id': $(this).attr("data-id")
};
jQuery.post(instagram_object.ajax_url, data, function() {
window.location = url;
});
});
最后,您deauthorize_instagram_via_button將獲得 user_id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435252.html
