Передача переменных и данных через обычную ссылку на веб-страницу? - PullRequest
5 голосов
/ 21 марта 2009

Я работаю со страницей, на которой я пытаюсь отправить данные при нажатии на ссылку. Я уже знаю, как сделать это с помощью POST и GET с помощью кнопок JavaScript, но как получить тот же эффект, когда я работаю с ссылками HTML?

Ответы [ 5 ]

8 голосов
/ 21 марта 2009

Если у вас есть простая ссылка, вы можете передать их в виде параметров запроса по ссылке (что является операцией GET)

<a href="/myapp/somecontroller.php?id=17&name=fred">Save</a>

Если у вас есть обычная форма HTML без JavaScript для обработки нажатия кнопки, вы можете поместить вещи в скрытые поля

<form name="theform" method="post" action="/myapp/somecontroller.php">
<input type="hidden" name="id" value="17">
<input type="hidden" name="name" value="fred">
 ...
</form>

Для этого не требуется JavaScript.

2 голосов
/ 21 марта 2009

Вы можете передать свои данные на другую страницу, используя GET или POST .

Обратите внимание, что при передаче данных вы должны учитывать ее назначение. Если передача данных не вызывает каких-либо изменений в вашем приложении, вы должны использовать GET . В противном случае вы должны использовать POST .

Например, если у вас есть страница управления пользователями. Когда вы только отображаете данные пользователя, вы должны использовать GET , потому что он не вносит никаких изменений: http://www.mywebsite.com/user.php?user=10.

Однако, если пользователи меняют свои данные, вы должны использовать POST , потому что это меняет данные пользователя:

<form name="userDetails" method="post" action="saveChanges.php">
   <input type="text" name="firstName" value="" />
   <input type="submit" value="save"/>
</form>

В качестве альтернативы, вы также можете использовать Cookies . Вы можете сохранить данные в файле cookie, который можно использовать в вашем веб-приложении.

1 голос
/ 22 марта 2009

Мне не совсем понятно, о чем вы спрашиваете, но вот как это звучит:

Вы знаете, как использовать POST и GET, или HTML-формы, для передачи данных между страницами. Вы используете кнопки Javascript.

Существует несколько интерпретаций «кнопок Javascript»:

Вы делаете что-то вроде

(1) <input type="submit" onclick="doSomething();" value="Save my data" />
(2) <input type="button" onclick="doSomething();" value="Save my data"  />
(3) <button onclick="doSomething();">Save my data</button>

или что-то вроде

(4) <input type="submit" value="Save my data" />

1, 2 и 3 - примеры использования javascript для работы кнопок. («Кнопки JavaScript»). 4 - это стандартная кнопка HTML FORM - Javascript НЕ используется; стандартное поведение HTML-формы приведет к тому, что кнопка отправит данные на любую страницу, указанную в теге FORM (что-то вроде <form method="get" action="datacollection.php">).

Теперь нужно понять, что POST / GET - это способы отправки данных между веб-страницами - между браузером и сервером. Процесс отправки данных может быть запущен с помощью HTML (ссылка <a>), Javascript (функция, которая вызывает URL-адрес или запускает отправку FORM) или элементами FORM, такими как <input type="submit" />.

Я не собираюсь обижаться, но то, как вы задали свой вопрос, заставляет меня думать, что вы не пытаетесь выяснить разные форматы для передачи данных на принимающую страницу (как обсуждают другие авторы) и выяснить, анализ значений cookie или итерация по полям формы для создания строки запроса будет очень сложной задачей.

Итак, вот несколько вариантов:

  1. Если ваша форма уже использовала Javascript для отправки формы (случаи 1, 2 или 3 выше), вы просто добавляете ту же самую часть щелчка мышью к ссылке HTML:

    Сохранить мои данные

Функция submitMyForm может выглядеть примерно так:

function submitMyForm() {
  // Get the form object -- you can also do this with the document.form array
  var myForm = document.getElementById( 'userdata' );
  // use the submit method of the form object
  myForm.submit();

}

Итак, в итоге, вы добавите поведение javascript («обработчик событий») к обычной HTML-привязке. Одно замечание - в общем, пользователи ожидают правило «ссылки идут местами, кнопки делают вещи». Это не жесткое и быстрое правило, но люди обычно счастливее, когда кнопка используется для таких вещей, как отправка данных формы.

0 голосов
/ 22 марта 2009

Если вы хотите передать значения данных с одной простой HTML-страницы на другую, вы можете использовать следующие методы:

сохранение значения данных в cookie сохранение значения в перезаписываемом свойстве window.name добавление значения к URL-адресу целевой страницы в виде строки запроса сохранение значения в переменной JavaScript другого фрейма (если вы используете фреймы)

Хорошая демонстрация вышеперечисленных методов находится в коллекции FAQ JavaScript - см. Передача параметров на страницу .

0 голосов
/ 21 марта 2009

Вы можете добавить строку запроса: Примерно так:

<a href="page.php?id=1&display=asdf">text</a>

Таким образом, вы получите это как переменные строки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...