Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > запись в БД без перезагрузки страницы


Автор: tailer_derden 14.1.2010, 20:50
Добрый вечер гуру PHP!
Подскажите, имею БД из которой данные выводятся таблицей. Один из столбцов HIDE отвечает за скрыть/показать запись, вносятся данные 1/0 соответственно.
Как реализовать изменение записи в столбце HIDE для соответствующего ID записи без перезагрузки страницы. 
Типа если в базе "0" выводится слово "нет" в виде ссылки, .... нажимаем,... слово "нет" изменяется на "да" а в базе запись меняется с "0" на "1".  smile 
Поиск че то результатов недал. Видел статью типа запись из поля в базу без перезагрузки (AJAX), но как применить и связать все это со ссылкой непонятна..

Автор: Sanchezzz 15.1.2010, 08:27
1  если  аякс  нужно  юзать  много  то  выбираем  фреймворк jquery или mootools.  (я лично
использую их постоянно экономия времени=) )

Рассмотрим пример на фреймворке jquery.
принципе вот тебе готовая функция приема и отправки.

Код

function getDataContent(parms){
$.post("/ajax.php",  //бакенд
            parms ,  //параметры в JSON
  function(data){
   $('div#conteiner').html(data);   //Куда вставить ответ.
  }, "html");                                  //тип вставки как хтмл
}

//Пример
getDataContent({'var1':  $(input#pole1').value , 'var2': $(input#pole2').value});


Готовый код в HTML
Код

<script>
function getDataContent(parms){
$.post("/ajax.php",  //бакенд
            parms ,  //параметры в JSON
  function(data){
   $('div#conteiner').html(data);   //Куда вставить ответ.
  }, "html");                                  //тип вставки как хтмл
}
</script>

<div id="conteiner"> 
Суда придет бакенд с файла ajax
</div>

<input type="text" id="pole1" value="123">
<inpu type="hidden" id="pole2" value="321">
<a href="javascript:;" onclick="getDataContent({'var1':  $(input#pole1').value , 'var2': $(input#pole2').value});">Подать запрос</a>


файл ajax.php
Код

<?
if(!empty($_POST['var1']) && !empty($_POST['var2']) ) {
//1 ваше действие c базой
//2 вывод...
}
?>


То что выводится в файле ajax.php будет вставятся в див с ID=conteiner

Автор: tailer_derden 15.1.2010, 22:26
Sanchezzz, 
Не совсем ясно как этим воспользоваться, выводя не div а ссылку, как я описал выше т.е. в твоем примере вместо ссылки "Подать запрос" выводятся "да" или "нет" соответствуя записи в базе, и при нажатии смена этой ссылки на соответствующую с изменением в самой базе  smile 

Автор: Котокобра 18.1.2010, 11:21
У тебя на сервере должен лежать пхп, который будет производить запись в бд, и возвращать состояние поля HIDE,
а по хмл ты обращаешься к этому пхп, и в зависимости от ответа устанавливаешь значение ссылки "да" или "нет".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)