Сохраняйте GET переменные, созданные снаружи и внутри формы - PullRequest
0 голосов
/ 19 апреля 2011

Допустим, у меня есть HTML-страница «myPage.php» с формой, которая использует метод GET и вызывает сама себя:

<form name="myForm" action="myPage.php" method="get">
 <input type="text" name="input1" />
 <input type="text" name="input2" />
 .
 .
 .
 <input type="submit" />
</form>

А также, на этой странице и вне формы я имеюякорь, который также вызывает саму страницу, но с добавленной переменной GET «myVar» (переменная GET, которая не является одной из переменных формы):

<a href="myPage.php?myVar=100"></a>

Теперь ... Я хочу, чтобы всепеременные будут сохраняться независимо от того, была ли отправлена ​​форма или была нажата ссылка.
например, если пользователь нажимал на ссылку, URL получит «myVar = 100» + переменные формы (как если бы форма былатакже отправляется вместе с нажатием на ссылку), и наоборот - если пользователь отправляет форму, URL получает переменные формы, а также «myVar», если это действительно было в URL.

Есть ли способ?

Спасибо:)

1 Ответ

0 голосов
/ 19 апреля 2011

Следовательно, простой способ - установить ссылки также с помощью

<a href="#" onClick="document.form_name.submit();">Something</a>

, изменив действие в вашей форме на

<form action"myPage.php?var=100" method="get" name="form_name" id="form_name">
...

, и они отправят ту же форму.В любом случае, вы так или иначе будете иметь дело с входными данными формы, верно?


РЕДАКТИРОВАТЬ: Ну, если это зависит от нажатия на ссылку, то:

1.) Получите myVar в PHP

$myCurrval = $GET['myVar'];

2.) Присвойте его в JS var

<script type="text/javascript">
var JOHNNY = <?php echo $myCurrval; ?>
</script>

2.) Добавьте скрытый ввод

<input type="hidden" id="myVar" name="myVar" value="" />

2.) И измените ссылку на

<a href="#" onClick="processForm();">Something</a>

3.) Затем создайте JS-метод с именем, да, processForm (), который решит, устанавливает myVal или нет.

function processForm() {
 if (JOHNNY != ''){
   document.getElementById('myVar').value=JOHNNY;
 }
}

Таким образом, значение myVar будет распространяться только в том случае, если оно было получено ранее (это означает, что при первой отправке оно будет сохраняться).Так или иначе, я бы использовал $ _SESSION, чтобы держать вещи между запросами!На самом деле это безопаснее и намного проще !!!:)

Надеюсь, это поможет.

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