За последние 24 часа нас посетили 114820 программистов и 3025 роботов. Сейчас ищут 1548 программистов ...

переменная из html в php

Тема в разделе "PHP для новичков", создана пользователем Alex_1984, 16 дек 2014.

  1. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Есть форма html
    Код (Text):
    1.  
    2. <form name="dict" method="get" action="class/departments_class.php">
    3.     <input type="text" name="name" />
    4.     <input type="submit" name="insert" value="Добавить" />
    5. </form>
    и соответственно файл departments_class.php. Как передать переменную name в departments_class.php без его загрузки?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
  3. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    если нажать на кнопку <input type="submit" name="insert" value="Добавить" /> откроется class/departments_class.php?name=jkhiuklnkj&insert=Добавить, а мне нужно остаться на той текущей странице но что бы значение из <input type="text" name="name" /> передалось в departments_class.php
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ajax-запрос?
     
  5. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    ajax не знаю )) может можно как то из html добавить переменную в get не используя php?
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Target формы в скрытый фрейм. И Ajax не относится к php.
     
  7. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Я в курсе про ajax )) имел ввиду что в html не должно быть ничего кроме html. Еще какие то варианты существуют? Если нет буду ajax ковырять ))
     
  8. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Я же вам написал:
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    чувак, ты вообще понимаешь как работают технологии с которыми ты работаешь? если отправка методом гет тебе не нравится то у тебя вариант - аякс. и там ты тоже будешь делать гет-запрос, только без перезагрузки страницы.
    таргет формы в скрытом фрейме тоже будет гет-запрос делать. ну просто не существует во вселенной другого алгоритма работы протокола передачи гипертекста. твои данные должны же как-то из формы попадать в файл, правильно?
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ему надо это видимо:
    Код (PHP):
    1. <form name="dict" method="get" action="class/departments_class.php">
    2.     <input type="text" name="name" value="<?php htmlspecialchars($_GET['name']);?>">
    3.     <input type="submit" name="insert" value="Добавить">
    4. </form>
     
  11. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    я прочитал и спросил про другие варианты

    ты не понял вопрос, мне нужно было дописать в существующий get значение name только без php и ajax в html

    да это, если html - ем никак ))
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    HTML это язык разметки. Он не умеет ничего кроме описания блоков и элементов.
     
  13. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    понятно, я наверно изначально не правильно вопрос задал. мне нужно в бд добавить значение текстбокса, но так чтобы страница не перезагружалась т.е. адрес страницы выглядит так index.php?section=1&page=2 переменные section и page отвечают за то что отображается на странице, когда я отправляю что то из формы они соответственно пропадают и я перехожу на главную. можно ли при нажатии на кнопку не менять текущий get, а добавлять к нему get из формы чтобы было так index.php?section=1&page=2&name=123
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    неа

    Это ж гет параметры, не более того. Это не урл даже.
     
  15. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Понял тебя.Смотри пишешь функцию на джава скрипте старт аджакс.Посылаешь в отдельный скрипт пхп, аякс запрос с данными.
    В пхп скрипте, делаешь добавление к базе.Сейчас листинги.
    Код (Text):
    1. <form name="dict" method="get" action="class/departments_class.php">
    2.     <input type="text" name="name" id = "name" />
    3.     <input type="submit" name="insert"  value="Добавить" />
    4. </form>
    джава скрипт
    Код (Text):
    1.  
    2. function startAjax(login, pas){
    3.   var request;
    4.   if(window.XMLHttpRequest){
    5.       request = new XMLHttpRequest();
    6.   } else if(window.ActiveXObject){
    7.       request = new ActiveXObject("Microsoft.XMLHTTP");  
    8.   } else {
    9.       return;
    10.   }
    11.   var name = document.getElementById("name").value;
    12.  
    13.   request.onreadystatechange = function(){
    14.         switch (request.readyState) {
    15.           case 1: //print_console("<br/><em>1: Подготовка к отправке...</em>"); break
    16.           case 2: //print_console("<br/><em>2: Отправлен...</em>"); break
    17.           case 3: //print_console("<br/><em>3: Идет обмен..</em>"); break
    18.           case 4:{
    19.            if(request.status==200){    
    20.                        // print_console("<br/><em>4: Обмен завершен.</em>");
    21.                        // document.getElementById("printResult").innerHTML = request.responseText;
    22.                      }else if(request.status==404){
    23.                         alert("Ошибка: запрашиваемый скрипт не найден!");
    24.                      }
    25.                       else alert("Ошибка: сервер вернул статус: "+ request.status);
    26.            
    27.             break
    28.             }
    29.         }      
    30.     }
    31.     request.open("POST","ajax.php", true);
    32. request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    33. request.send("login=" + login + "&pas=" + pas + "&name=" + name);
    34.   }
    на пхп принимаешь ajax.php
    Код (Text):
    1.  
    2. <?
    3. //запись в базу
    4. $_POST['login'];
    5. $_POST['pas'];
    6. $_POST['name'];
    7. ?>
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    можно сделать пост запрос к странице с гет-аргументами. на то они и гет-аргументы.
     
  17. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    я с пхп неделю всего, если ща в ajax полезу запутаюсь, а просто копировать не хочется
    можно чуть чуть поподробней
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    так отправь форму post методом на адрес с get параметрами и выведи там phpinfo() и посмотри результат

    Код (PHP):
    1. <form action="?test_get=ok" method="post">
    2. <input type="text" name="mytext" value="mytest">
    3. <input type="submit">
    4. </form>
    5. <?php
    6. ?>
     
  19. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    конечно можно. обычно я отправляю новичков в мануал почитать. но сегодня такие великолепные торги на бирже что мне лениво даже котят топить. короче. ты когда делаешь запрос к странице - по умолчанию браузер делает его методом гет. гет адрес такой-то. веб-сервер дает пхп машине избыточное кол-во информации о запросе исходя из которой пхп-машина начинает заполнять удобные для программиста массивы. ведь пхп это невероятно простой яп. прям удивительно что у многих с ним проблемы. ну да не будем об этом. глядя на строку адреса запроса пых находит в ней аргументы-значения и заполняет массив ГЕТ. а потом еще если были в загловках печеньки - массив КУКИЗ. если в сценарии вызван старт сессии - пых поищет ее идентификатор в ГЕТ или КУКИЗ и если оно там есть - прочитает из хранилища данные в массив СЕЙШН. вот такой казалось бы банальный гет-запрос а пхп машина для удобства сделала кучу лишних действий. что же такое пост-запрос? да ничего особенного. тот же адрес что и при гет-запросе просто вызывается методом пост. при этом машина так же читает из адреса ГЕТ, из заголовков КУКИЗ, из сессии если она есть СЕЙШН но данный метод позволяет веб-серверу принять поток данных. эти данные веб-сервер записывает на стандартный вход пхп-машины, которая в свою очередь их анализирует относительно настроенного для этого запроса окружения и вычисляет массив ПОСТ. а при определенном условии пхп машина еще и запишет некоторые данные на диск в указанное место и заполнит массив ФАЙЛЗ. вуаля. одна простая замена метода гет на метод пост позволила вытащить из бедного пыха еще больше. перевожу на язык нубов. если форма <form action='/s.php?a=1&b=2' method='post'><input id='name'></form> то после её отправки пхп-машина на начало работы скрипта будет в суперглобальных переменных держать для программиста $_GET['a'] равное 1, $_GET['b'] равное 2 и $_POST['name'] с тем значением которое будет в форме. таким образом адрес не изменился но нужные данные мы передали.
     
  20. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Тогда он юрл перезагрузит submit отправляет данные перегружая юрл.
    Alex_1984 смотри как удобней, но в аяксе нет ничего не понятного.Просто посылаешь пост или гет запрос к твоему скрипту.Не перегружая юрл или страницу как удобней, ты же так по моему хотел.Копируй и вставляй к себе.Там только создание объекта XMLHttpRequest это и есть так называемый объект аякса.Если что не понятно по коду спрашивай.
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну перезагрузит, и что в этом страшного? гет-запрос останется тем же, пхп-машина вернется к тому же объекту логическому. нужные данные-то в скрипте окажутся. в посте.

    Добавлено спустя 1 минуту 8 секунд:
    изначально человека пугает что адрес меняется на отправке формы. пока он ноль в пхп - пусть понимает низкоуровневый протокол. а аякс это уже удобства для людей с бОльшим скилом.