За последние 24 часа нас посетили 17716 программистов и 1623 робота. Сейчас ищут 1280 программистов ...

Как послать POST переменную без form, а ,н-р, c помощью href

Тема в разделе "Прочие вопросы по PHP", создана пользователем murcom, 29 июн 2006.

  1. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Как послать POST переменную без <form>, а ,н-р, c помощью <href> :?: :?:
     
  2. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Послать POST-ом можно только через форму, другое дело, что можно повесить на ссылку обработчик, который по нажатию будет отправлять форму.
    Форму же сделать заранее скрытую, либо создать непосредственно в обработчике.
     
  3. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Example не будет? Или url какой-нибудь?
     
  4. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Во-первых, зачем оно надо?

    Во-вторых,
    Код (Text):
    1. <a href="#" onclick="document.getElementById('formID').submit()">...</a>
    где formID - id скрытой формы.
     
  5. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Нужно для этого:
    Есть форма, через которую загружаются файлы и вводится др. инфа. А вот хочется чтобы была возможность удаления файлов, но нужно знать который,поэтому есть ссылка
    Код (Text):
    1. <a href="...?id=jee03jnnsfmasofkso"
    . ID и надо поймать в скрипте. POSTом надо отсылать, т.к другие данные тоже POST и надо после нажатия кнопки сохранить все значения пользователя и его выбор, чтобы ему не вводить все снова после удаления одног файла...
    ЗЫ:Можно пример поточнее.Что в href писать то?
     
  6. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Задача, как я ее понял — есть форма, в которой заполняются какие-то данные. Есть так же ссылки, при нажатии на которые должна отослаться вышеуказанная форма + id (для каждой ссылки свой). Если да, то примерно так.

    Вешаешь на форму id, чтобы обращаться к ней:
    Код (Text):
    1. <form id="formID" ...
    На ссылки вешаешь обработчики:

    Код (Text):
    1. <a href="Все что угодно" onclick="return submForm('<id>')">
    Вместо id для каждой ссылки вставляешь нужный id.

    Ну и описываешь функцию-обработчик:
    Код (Text):
    1. function submForm( id ) {
    2.  
    3.  var f = document.getElementById( "formID" ); // Форма
    4.  /* Создание скрытого элемента с нужным id */
    5.  var hid = document.createElement( "input" );
    6.  hid.setAttribute( "type", "hidden" );
    7.  hid.value = id;
    8.  f.appendChild( hid );
    9.  
    10.  /* Отправка формы */
    11.  f.submit();
    12.  
    13.  return false; // На всякий случай, чтобы ссылка не сработала.
    14.  
    15. }
    Примерно так, не проверял только.
     
  7. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Может я что-то не так делаю, но у меня ни одна переменная не отсылается. Просто тупо переходит к странице из action
     
  8. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Код покажи
     
  9. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Код (Text):
    1.  
    2. <?php
    3. print_r($_GET);
    4. echo '<br>';
    5. print_r($_POST);
    6. echo '<br>
    7. <html>
    8. <head>
    9. </head>
    10. <body>
    11. <script language="JavaScript" type="text/javascript">
    12. function submForm( id ) {
    13.  
    14.  var f = document.getElementById( "afsadf" );
    15.  var hid = document.createElement( "input" );
    16.  hid.setAttribute( "type", "hidden" );
    17.  hid.value = id;
    18.  f.appendChild( hid );
    19.  
    20.  /* Отправка формы */
    21.  f.submit();
    22.  
    23.  return false; // На всякий случай, чтобы ссылка не сработала.
    24.  
    25. }
    26. </script>
    27.  
    28. <form action="test.php" method=POST id="afsadf">
    29.  
    30. <a href="68678" onclick="return submForm("fffffffffff=fhfg")">fasfasf </a><br>
    31. <a href="s" onclick="return submForm("ggggfff")">111111</a>
    32. <input type="submit" name="Submit" value="Submit"><br>
    33. </form>
    34. </body>
    35. </html>
    36. ';
    37. ?>
     
  10. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Во-первых —
    Код (Text):
    1. onclick="return submForm("fffffffffff=fhfg")"
    Кавычки разные д.б., а то получается
    Код (Text):
    1. onclick="return submForm("
    Во-вторых — пардон, забыл имя хиддену дать, хотя мог бы сам догадаться.
    Код (Text):
    1. hid.setAttribute( "name", "id" );
    В-третих — и убрать это echo на фиг. Выводи простым html после ?>, с кавычками куда меньше геморра будет.
     
  11. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Спасибо.Все работает. :)