2014-10-23 4 views
0

Это не дублирующий вопрос, и я пробовал много найти решения. Поэтому, пожалуйста, прочитайте его перед голосованием.Позвоните по ссылке PHP с помощью Onclick

enter image description here

фон:

Это приложение, как заметки, веб-приложение, где вы можете оставить/удалять свои заметки.

Каждый элемент в списке имеет идентификатор, необходимый при совершении вызова на удаление.

В моем приложении я должен удалить отдельные элементы из списка, который генерируется путем циклизации ответа JSON (с помощью REST API) с использованием PHP. Ответ JSON может быть получен после успешного входа в систему.

Вопрос:

Для реализации функцию удаления я должен отправить идентификатор каждого из элементов в качестве параметра к апи покоя удалить вызов.

Итак, для этого я должен генерировать динамические ссылки формы:

http://localhost/myfolder/api/notes/:id 

, которые должны быть переданы функции delete.php (который я реализованного в CURL).

Я искал возможные пути:

  1. Использование функции PHP: Это, кажется сложным, однако, если есть какой-нибудь способ для вызова PHP функции (удаления кода с помощью CURL) на щелчок ссылка (что я нашел не возможным в соответствии с некоторыми ответами?), это может быть отличным решением.

  2. Использование Javascript: Мне нужно вызвать функцию после клика по ссылке, которая устанавливает переменную $ _SESSION ["id"] в текущий элемент ["id"], а затем переходит к delete.php, где я использую $ _SESSION, чтобы сначала установить ссылку, а затем использовать код CURL.

Я пробовал базовую реализацию с использованием второго подхода, но я попал в блокнот в этом выпуске. Было бы здорово, если бы вы могли сказать немного кода, какой подход следует соблюдать, или любой другой способ сделать это?

Эта функция присутствует в Twitter/Facebook и почти каждый из таких услуг, как они реализуют это, основной подход должен быть таким же, право: создание динамических ссылок и передать их в PHP скрипт по щелчку?

Основные Javasript подход:

<script> 
    <script> 
    var el = document.getElementById('del1'); 
    el.onclick = del1; 


    function del() { 
     // I have to set $_SESSION here 
     return false; 
    } 
    </script> 

    echo "<a href=\"delete.php\" title=\"Delete\" id=\"del1\">"; 
    //Here, I have to pass the item["id"] to the javascript function. 

Я пробовал некоторые другие способы, но я изменил код так много, я не могу опубликовать их. Спасибо за вашу помощь.

+0

Вы можете встраивать GET переменные в ссылках, когда они сначала генерируются. Таким образом, ваша динамическая ссылка будет выглядеть примерно так: «delete.php? Id = 3 & delete = yes –

+0

Вы можете переписать URL-адрес с помощью apache: https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/ –

+0

Не могли бы вы поделиться своей базовой реализацией, пожалуйста? – fast

ответ

2

Что касается № 2, вы не можете получить доступ к сеансу пользователя из Javascript, так что это не сработает.

Мой предпочтительный способ (если используется jquery) заключается в том, чтобы поместить идентификатор в атрибут данных кнопки удаления (или блок в целом). Затем в функции удаления OnClick сделать что-то вроде

<div class="block" data-itemid="<?=$item['id']?>"> 
    ... 
    <div class="delete_button">Delete</div> 
</div> 

...

$('.delete_button').on('click',function(event) { 
    block = $(event).target.parent('.block'); 
    itemid = block.data('itemid'); 
    $.post('delete.php',[itemid: itemid]...); 
}); 
+0

должен добавить еще одну часть ... обработчик успеха, чтобы удалить html для этой 'строки' – charlietfl

+0

Конечно. Это пошло бы в «...» часть почтового звонка :) –

+0

@JayK У меня есть идея. Было бы очень полезно, если бы вы могли немного объяснить, что происходит в коде? Большое спасибо. – Florentino

Смежные вопросы