Есть форма html Код (Text): <form name="dict" method="get" action="class/departments_class.php"> <input type="text" name="name" /> <input type="submit" name="insert" value="Добавить" /> </form> и соответственно файл departments_class.php. Как передать переменную name в departments_class.php без его загрузки?
если нажать на кнопку <input type="submit" name="insert" value="Добавить" /> откроется class/departments_class.php?name=jkhiuklnkj&insert=Добавить, а мне нужно остаться на той текущей странице но что бы значение из <input type="text" name="name" /> передалось в departments_class.php
Я в курсе про ajax )) имел ввиду что в html не должно быть ничего кроме html. Еще какие то варианты существуют? Если нет буду ajax ковырять ))
чувак, ты вообще понимаешь как работают технологии с которыми ты работаешь? если отправка методом гет тебе не нравится то у тебя вариант - аякс. и там ты тоже будешь делать гет-запрос, только без перезагрузки страницы. таргет формы в скрытом фрейме тоже будет гет-запрос делать. ну просто не существует во вселенной другого алгоритма работы протокола передачи гипертекста. твои данные должны же как-то из формы попадать в файл, правильно?
ему надо это видимо: Код (PHP): <form name="dict" method="get" action="class/departments_class.php"> <input type="text" name="name" value="<?php htmlspecialchars($_GET['name']);?>"> <input type="submit" name="insert" value="Добавить"> </form>
я прочитал и спросил про другие варианты ты не понял вопрос, мне нужно было дописать в существующий get значение name только без php и ajax в html да это, если html - ем никак ))
понятно, я наверно изначально не правильно вопрос задал. мне нужно в бд добавить значение текстбокса, но так чтобы страница не перезагружалась т.е. адрес страницы выглядит так index.php?section=1&page=2 переменные section и page отвечают за то что отображается на странице, когда я отправляю что то из формы они соответственно пропадают и я перехожу на главную. можно ли при нажатии на кнопку не менять текущий get, а добавлять к нему get из формы чтобы было так index.php?section=1&page=2&name=123
Понял тебя.Смотри пишешь функцию на джава скрипте старт аджакс.Посылаешь в отдельный скрипт пхп, аякс запрос с данными. В пхп скрипте, делаешь добавление к базе.Сейчас листинги. Код (Text): <form name="dict" method="get" action="class/departments_class.php"> <input type="text" name="name" id = "name" /> <input type="submit" name="insert" value="Добавить" /> </form> джава скрипт Код (Text): function startAjax(login, pas){ var request; if(window.XMLHttpRequest){ request = new XMLHttpRequest(); } else if(window.ActiveXObject){ request = new ActiveXObject("Microsoft.XMLHTTP"); } else { return; } var name = document.getElementById("name").value; request.onreadystatechange = function(){ switch (request.readyState) { case 1: //print_console("<br/><em>1: Подготовка к отправке...</em>"); break case 2: //print_console("<br/><em>2: Отправлен...</em>"); break case 3: //print_console("<br/><em>3: Идет обмен..</em>"); break case 4:{ if(request.status==200){ // print_console("<br/><em>4: Обмен завершен.</em>"); // document.getElementById("printResult").innerHTML = request.responseText; }else if(request.status==404){ alert("Ошибка: запрашиваемый скрипт не найден!"); } else alert("Ошибка: сервер вернул статус: "+ request.status); break } } } request.open("POST","ajax.php", true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); request.send("login=" + login + "&pas=" + pas + "&name=" + name); } на пхп принимаешь ajax.php Код (Text): <? //запись в базу $_POST['login']; $_POST['pas']; $_POST['name']; ?>
я с пхп неделю всего, если ща в ajax полезу запутаюсь, а просто копировать не хочется можно чуть чуть поподробней
так отправь форму post методом на адрес с get параметрами и выведи там phpinfo() и посмотри результат Код (PHP): <form action="?test_get=ok" method="post"> <input type="text" name="mytext" value="mytest"> <input type="submit"> </form> <?php phpinfo(); ?>
конечно можно. обычно я отправляю новичков в мануал почитать. но сегодня такие великолепные торги на бирже что мне лениво даже котят топить. короче. ты когда делаешь запрос к странице - по умолчанию браузер делает его методом гет. гет адрес такой-то. веб-сервер дает пхп машине избыточное кол-во информации о запросе исходя из которой пхп-машина начинает заполнять удобные для программиста массивы. ведь пхп это невероятно простой яп. прям удивительно что у многих с ним проблемы. ну да не будем об этом. глядя на строку адреса запроса пых находит в ней аргументы-значения и заполняет массив ГЕТ. а потом еще если были в загловках печеньки - массив КУКИЗ. если в сценарии вызван старт сессии - пых поищет ее идентификатор в ГЕТ или КУКИЗ и если оно там есть - прочитает из хранилища данные в массив СЕЙШН. вот такой казалось бы банальный гет-запрос а пхп машина для удобства сделала кучу лишних действий. что же такое пост-запрос? да ничего особенного. тот же адрес что и при гет-запросе просто вызывается методом пост. при этом машина так же читает из адреса ГЕТ, из заголовков КУКИЗ, из сессии если она есть СЕЙШН но данный метод позволяет веб-серверу принять поток данных. эти данные веб-сервер записывает на стандартный вход пхп-машины, которая в свою очередь их анализирует относительно настроенного для этого запроса окружения и вычисляет массив ПОСТ. а при определенном условии пхп машина еще и запишет некоторые данные на диск в указанное место и заполнит массив ФАЙЛЗ. вуаля. одна простая замена метода гет на метод пост позволила вытащить из бедного пыха еще больше. перевожу на язык нубов. если форма <form action='/s.php?a=1&b=2' method='post'><input id='name'></form> то после её отправки пхп-машина на начало работы скрипта будет в суперглобальных переменных держать для программиста $_GET['a'] равное 1, $_GET['b'] равное 2 и $_POST['name'] с тем значением которое будет в форме. таким образом адрес не изменился но нужные данные мы передали.
Тогда он юрл перезагрузит submit отправляет данные перегружая юрл. Alex_1984 смотри как удобней, но в аяксе нет ничего не понятного.Просто посылаешь пост или гет запрос к твоему скрипту.Не перегружая юрл или страницу как удобней, ты же так по моему хотел.Копируй и вставляй к себе.Там только создание объекта XMLHttpRequest это и есть так называемый объект аякса.Если что не понятно по коду спрашивай.
ну перезагрузит, и что в этом страшного? гет-запрос останется тем же, пхп-машина вернется к тому же объекту логическому. нужные данные-то в скрипте окажутся. в посте. Добавлено спустя 1 минуту 8 секунд: изначально человека пугает что адрес меняется на отправке формы. пока он ноль в пхп - пусть понимает низкоуровневый протокол. а аякс это уже удобства для людей с бОльшим скилом.