Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2012, 14:58
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Сохранение переменной для дальнейшего использования
Пытаюсь реализовать интерфейс удаления элемента из бд, но столкнулся с непонятками, помогите если не влом.

php формирует список элементов при нажатии элемент нужно передать его id и вызвать форму div c Удалить? "ДА","НЕТ", при нажатии на "НЕТ" форму закрываем, при нажатии на "ДА"-> ajax запрос и удаляем элемент по id.

Проблема в том что у меня этот id теряется, т.е при выборе элемента из списка я его получаю, а при нажатии на кнопку "ДА", он исчезает и соответственно удалить я его не могу.
Вопрос как мне сохранить значение id для дальнейшего использования.
В php я бы сделал так.
if(id=число)
{
$_SESSION['id']=id;//ну а потом где угодно используй
}



Вот код:

PHP файл формирующий список:
Цикл
{
<td><input type='image'  onClick='delete_virtual_org(\"$row[id]\");' src='pic/16/delete_16.png'></td>
}


HTML:
<div id='delete_form'>
              <button onclick='delete_virtual_org(\"delete\")'>Да</button>
              <button onclick='delete_virtual_org(\"cancel\")' >Нет</button>
              </div>


javascript:

function delete_virtual_org(value)
{
var div = document.getElementById('delete_form');
if(div.style.display == 'none') 
{
div.style.display = 'block';
document.getElementById('opacity_background').style.opacity='0.5'
document.getElementById('opacity_background').style.zIndex='2000'
}

if(value=='cancel')
{
div.style.display = 'none';
document.getElementById('opacity_background').style.opacity='0'
document.getElementById('opacity_background').style.zIndex='-1000'
}

if(value=='delete')
{

   xhttp=new XMLHttpRequest();
   xhttp.onreadystatechange=function(){
      if (xhttp.readyState==4 && xhttp.status==200)
         
         div.style.display = 'none';
         document.getElementById('opacity_background').style.opacity='0'
         document.getElementById('opacity_background').style.zIndex='-1000'
        }
   xhttp.open('POST','php/workspace/admin_interface/virtual_organizations/ajax_delete_virtual_org.php',true);
   <!--Установим тип передаваемого содержимого как у форм-->
   xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
   xhttp.send('id='+value);

}
}

Проблема собственно с переменной value т.к в момент удаления она содержит значение "delete" а не id.
Объясните как это можно сделать.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2012, 15:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<button onclick='delete_virtual_org(\"delete\",\"Form_ID \")'>Да</button>
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2012, 15:14
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Я не очень понял
А откуда в возьмется Form_ID?
Я в том смысле что:
Список-(Передаем id записи и открываем форму)-в форме кнопка ДА,мне надо как то передать заначение id-элемента из списка это кнопке?

Последний раз редактировалось Eser, 28.06.2012 в 15:18.
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2012, 15:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Eser
откуда в возьмется Form_ID?
Ну
Вариант раз: (если я правильно понял что кнопка на каждую форму своя,
дык проставляете PHP(ой) и ID удаляемого элемента и в кнопке
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2012, 16:30
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Как бы объяснить.
Нет форма общая для всех -это просто контейнер для кнопок "ДА" и "НЕТ".
Мне одной функции delete_virtual_org() нужно передать сначала id-(порядковый номер элемента в базе), а вот удалить его только после нажатия на кнопку "ДА".

Вы предлагаете функции передать два аргумента.
<button onclick='delete_virtual_org(\"delete\",\"Form_ID \")'>Да</button>
С "delete" все понятно он руками забит, а вот Form_ID как я не понимаю? Ведь он существует при первом запуске формы.
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2012, 16:34
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Eser Посмотреть сообщение
Как бы объяснить.
Нет форма общая для всех -это просто контейнер для кнопок "ДА" и "НЕТ".
Мне одной функции delete_virtual_org() нужно передать сначала id-(порядковый номер элемента в базе), а вот удалить его только после нажатия на кнопку "ДА".

Вы предлагаете функции передать два аргумента.
<button onclick='delete_virtual_org(\"delete\",\"Form_ID \")'>Да</button>
С "delete" все понятно он руками забит, а вот Form_ID как я не понимаю? Ведь он существует при первом запуске формы.
вы можете достать из БД тот самый необходимый ID перед/во время загрузки страницы с кнопками "ДА"/"НЕТ" ?
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2012, 16:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Eser,
Ну всё одно - какая сложность на серве вставить в кнопку id,? того, что оно должно удалить ?
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2012, 16:47
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Да конечно могу.

Может вы так имели ввиду?:
<button onclick='delete_virtual_org(\"delete\")' id='virtual_org_delete_button'>Да</button>
Т.е добавляем id кнопки.

А функции делаем так:
function delete_virtual_org(value)
{
if(!isNaN(value))
{
var id=value;
document.getElementById('virtual_org_delete_button').value=value;//Т.е теперь кнопка знает что ее значение = value
}
}
И при нажатии на нее  мы получим тот же самый id обратно.
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2012, 16:49
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Eser Посмотреть сообщение
Да конечно могу.

Может вы так имели ввиду?:
<button onclick='delete_virtual_org(\"delete\")' id='virtual_org_delete_button'>Да</button>
Т.е добавляем id кнопки.

А функции делаем так:
function delete_virtual_org(value)
{
if(!isNaN(value))
{
var id=value;
document.getElementById('virtual_org_delete_button').value=value;//Т.е теперь кнопка знает что ее значение = value
}
}
И при нажатии на нее  мы получим тот же самый id обратно.
правильнее так было бы
<button onclick='delete_virtual_org(\"delete\", \"virtual_org_delete_button\")'>Да</button>

function delete_virtual_org(value, id)
{
...
}
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2012, 16:56
Интересующийся
Отправить личное сообщение для Eser Посмотреть профиль Найти все сообщения от Eser
 
Регистрация: 06.12.2011
Сообщений: 25

Ура все получилось!
Спасибо большое!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Передача переменной в функцию для теста со случайным выводом вопросов rockdancer Общие вопросы Javascript 1 06.02.2010 23:13
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Сохранение данных для передачи с одной страницы в другую Andrey Freeman Общие вопросы Javascript 6 15.09.2008 22:32