LINUX.ORG.RU

Передача нескольких переменных через кнопку на другую страницу и скрипту

 ,


0

1

На основной странице есть такое:

<button onclick="$.get('script.php',{value:'privet', value1:'ahoj'}); window.location.href='somepage.php'">knopka</button>
В script.php и на somepage.php такое:
<?php
$f = fopen($_GET['value'], "a");
fwrite($f, $_GET['value1']."\n");
fclose($f);
?>
При тычке на кнопку я перемещаюсь на somepage.php, но ни скрипт, ни эта страница не обрабатывают переданные данные. Что делаю не так? Как сделать так? Если убрать window.location.href='somepage.php', то не будет перехода, но скрипт отработает.


Когда происходит переход (window.location.href), то запрос к скрипту отменяется. Нужно дождаться выполнения скрипта, а потом переходить на другую страницу. У $.get есть третий параметр - callback-функция, в нее и нужно засунуть переход.

sholom ()

Причин может быть много. Это нельзя сделать достаточно просто. Послушай мудрый совет опытного человека: поменяй свой подход. Рассказывай, что должно происходить? Почему не сделать так, чтобы эти значения были известны без вызова доп скрипта?

mr_Heisenberg ()

Попробуй так :)

<button onclick="window.location.href='somepage.php?value=privet&value1=ahoj'">knopka</button>

Твоя проблема в том что ты пытаешься AJAX запросом ПЕРЕЙТИ на страницу, а он для этого не предназначен.

Noob_Linux ★★★ ()
Последнее исправление: Noob_Linux (всего исправлений: 2)

<button>
window.location.href

Нет, правда, чем тебе в данном случае <a> не угодил?

h578b1bde ★☆ ()

$f = fopen($_GET['value'], «a»); fwrite($f, $_GET['value1'].«\n»);

А не ссышь, что кто-нибудь сделает

http://yoursite/somepage.php?value=somepage.php&value1=system(%22rm%20-rf%20*%22)

no-such-file ★★★★★ ()
Ответ на: комментарий от mr_Heisenberg

На основной странице будет куча кнопок, удобно разместить там ещё какие-то формы уже не получится. Поэтому и хочу чтобы тык на кнопку перемещал на другую страницу и давал сведения о том, на что ткнули.

dened ()
Ответ на: комментарий от h578b1bde

Это пробовал, но возникают проблемы при передаче например такого содержания: value=Мама мыла раму? > нет не мыла :)

dened ()
Ответ на: комментарий от dened

возникают проблемы

Это потому что ты говнокодер, лепящий какие-то упоротые костыли и сношающий мозг на форуме вместо того чтобы потратить хотя бы десять минут на изучение основ. То что ты типа не занимаешься разработкой сайтов тебя не оправдывает, иначе этого треда здесь бы не было.

такого содержания: value=Мама мыла раму?

  1. Зачем тебе нужно такое содержание?
  2. man html entities.
h578b1bde ★☆ ()
Ответ на: комментарий от h578b1bde

Слушай, всё что мне нужно я уже давно сделал обычными bash или python скриптами. Люблю консоль. А для офисных козявок нужно чтобы было в браузере из винды, вот и решил попробовать всю эту web х.йню в действии. И понимаю, что тут до сих пор всё пилят заострёнными камнями и подпирают черенками от лопат. Бля наплодили какой-то зоопарк php,js,json... ху.сон Я выделил себе на это дело 5 дней, не разберусь - пошлю всех подальше, но ещё 2 дня осталось... до разочарования :)

dened ()
Ответ на: комментарий от dened

Слушай, всё что мне нужно я уже давно сделал обычными bash или python скриптами

Не увидел питона в стартовом посте.

зоопарк php,js,json

А зоопарк башей, седов, авк и питонов в любимых тобой консолях тебя не смущает?

php,js,json

И где ты их у меня увидел? Это самый обычный html.

Я выделил себе на это дело 5 дней, не разберусь - пошлю всех подальше, но ещё 2 дня осталось

Т.е. ты потратил целых 3 дня только на эту форму? Лучше бросай сразу и не мучайся.

h578b1bde ★☆ ()
Ответ на: комментарий от dened
<a id="link">Нажми меня!</a>
<script>
    param='Мамка мыла рот анонимуса, котрый не любит слово \'папка\', с мылом. > "Да?" > "Да!"';
    link.href='somepage.php?value=' + encodeURIComponent(param);
</script>

В жиквери есть $.param(), который удобненько переводит жейсон в запрос:

<script src="jquery-3.1.1.min.js"></script>

<a id="link">Нажми меня!</a>
<script>
    values = {
        value1 : '&>_<&',
        value2 : '-=+=-'
    }
    link.href='somepage.php?' + $.param(values);
</script>

А может тебе нужна форма?

<form action="somepage.php" method="GET">
    <input type="text" name="value1"/>
    <input type="text" name="value2"/>
    <button type="submit">Спасибопожалуста</button>
</form>

А может ты просто лентяй? М?

anonymous ()

А не проще ли через localstorage и забирать данные скриптом на целевой странице ?

ism ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.