|
|
|
| Добрый день!
Никак не могу найти, скрипт JS который бы заносил строковое значение переменной JS в таблицу Mysql и выводил её оттуда.
Приведите, пожалуйста пример такого скрипта JS | |
|
|
|
|
|
|
|
для: sega_z
(06.04.2012 в 13:29)
| | И не найдете, так как JS у клиента, а MySQL на сервере.
Передавайте эти значения на сервер, а php-скрипт их поместит в базу. | |
|
|
|
|
|
|
|
для: confirm
(06.04.2012 в 13:55)
| | А как передать значения на сервер? | |
|
|
|
|
|
|
|
для: sega_z
(06.04.2012 в 14:30)
| | Да обыкновенным способом, как обычно все и передается:
а) помещать их в форму (готовую, но скрытую, либо создаваемую динамически), и отправляя ее с помощью JS;
б) посредством url-запроса, в который поместить эти переменные как его параметры;
в) асинхронным методом - ajax.
В любом из этих случаев, запрос должен обращаться к скрипту на сервере, который их примет, обработает и поместит в базу. | |
|
|
|
|
|
|
|
для: confirm
(06.04.2012 в 14:35)
| | А можете привести пример к варианту "б", чтобы затем я мог переместить эти данные из массива $_GET[....] в базу данных. | |
|
|
|
|
|
|
|
для: sega_z
(06.04.2012 в 15:23)
| | С помощью объекта location, изменив его свойство href.
<script>
location.href = name_script.php?name1=value1&name2=value2&name3=value3&... и т.д.
|
где name_script - имя скрипта обработчика, nameN=valueN - пары имя/значение переменной, которые нужно передать. Сформируйте такие пары, присвойте эту строку свойству href, будет произведен запрос на сервер.
Если вы выбрали этот вариант ради GET-массива данных, то таковой можно передать и формой, именно этим методом она и передается по умолчанию. | |
|
|
|
|
|
|
|
для: confirm
(06.04.2012 в 15:56)
| | Спасибо Вам за помощь! | |
|
|
|
|
|
|
|
для: sega_z
(06.04.2012 в 16:36)
| | Подскажите, пожалуйста, как обратно из массива $_GET[....] занести данные в переменную JS ? | |
|
|
|
|
|
|
|
для: sega_z
(10.04.2012 в 17:28)
| | А зачем их тогда отправлять было?
Может быть вы делаете совсем не нужное или не так. Что за задачу вы решаете?
А передать значения переменных, как и определить сами переменные на стороне сервера для JS, можно при формировании страницы перед отправкой ее пользователю:
<script>
<?php echo 'var a = 12;' ?>
</script>
| и в сценариях пользователя будет доступна переменная а со значением 12. | |
|
|
|
|
|
|
|
для: confirm
(10.04.2012 в 17:45)
| | Нет, это просто сервер передает совсем другую переменную в JS.
Все понятно, спасибо за очередную помощь!!! | |
|
|
|
|
|
|
|
для: sega_z
(10.04.2012 в 17:54)
| | Получается без перезагрузки страницы или перехода на другую страницу переменную JS не отправить на сервер? | |
|
|
|
|
|
|
|
для: sega_z
(12.04.2012 в 12:33)
| | Любой запрос на сервер, означает получение нового содержимого, а значит перегрузка. Есть исключение из этого правила - Ajax. | |
|
|
|
|
|
|
|
для: confirm
(12.04.2012 в 12:38)
| | Спасибо, раньше я этого не знал... | |
|
|
|
|
|
|
|
для: sega_z
(12.04.2012 в 13:12)
| |
function postMessage(message) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if (xhr.status == '200') {
alert(xhr.responseText);
}
else { // 403, 404, 501
alert( 'Ошибка');
}
}
}
// При синхронном запросе браузер "подвисает" и ждет, пока сервер не ответит на запрос.
xhr.open('POST', 'message.php'); // ассинхронный - true(по-умолчанию).
// Без этого заголовка данные просто не отправятся
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send('message=' + encodeURI(message)); // остальные параметры как в адресной строке передаются (var1=...&var2=...) . Значение будет лежать в $_POST['message']
}
|
| |
|
|
|
|
|
|
|
для: Красная_шляпа
(12.04.2012 в 13:31)
| | Спасибо, отличное решение. | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 16:18)
| |
<script type="text/javascript">
var metka = 10;
location.href = 'adres.php?metka='+metka;
</script>
|
А как передать в этом случае несколько переменных (как правильно написать location.href =....)? | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 16:20)
| |
<script type="text/javascript">
var metka = 10;
var popka = 20;
var durka = 30;
location.href = 'adres.php?metka=' + metka + '&popka=' + popka + '&durka=' + durka;
// ^ ^
</script>
|
| |
|
|
|
|
|
|
|
для: ЯСА
(14.04.2012 в 16:45)
| | Спасибо!!!
Блин, столкнулся с проблемой, похоже методом "location.href=..." не получится передавать "var metka", т.к. у меня на странице есть форма и все данные должны передаваться методом POST. Эта же страница является обработчиком формы:
<script type="text/javascript">
var metka = 10;
location.href = 'adres.php?metka=' + metka;
</script>
<form name="form1" action="adres.php" method="post" enctype="multipart/form-data">
<input name="model" type="text" class="pole" value="<?php echo @$_POST['model'] ?>" size="31" maxlength="31">
// Остальные поля формы
<input name="dobavity" type="submit" class="knopka" value="Отправить">
</form>
|
Покажите пожалуйста на моем примере, как сделать невидимое поле для передачи переменной "var metka" с помощью вышеуказанной формы вместе с другими значениями полей, при нажатии "Отправить"? | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 17:05)
| | Что-то мне подсказывает, что вы занимаетесь совсем не тем. Что такое metka? | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 17:20)
| | Это координаты метки на карте, которые нужно передать с остальными значениями полей в базу данных.
Т.е. на одной странице создается объявление и указывается метка на карте (координаты которой заносятся в "var metka"), а на другой странице (просмотра) эта метка отображается на карте. | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 17:34)
| | Вы же сами пишите, что эта страница выводит и обрабатывает форму, так зачем вам помещать нечто сначала как переменную JS, а потом перемещать ее в форму. Вот и создавайте сразу скрытое поле в форме и вносите в него то, чего вам надо. | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 17:37)
| | Дак дело в том, что я не знаю как создать скрытое поле и занести в него данные JS | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 17:41)
| | Так пора бы уже изучить этот вопрос - http://www.php.su/phphttp/forms/?elements | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 17:43)
| | А как записать значения переменной JS в "value" поля <input type=hidden name=имя_параметра value=значение>? | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 17:50)
| | Вы сперва объясните, зачем вам в данном код вообще нужно JS значение? Вы что его сразу не можете поместить в <input type=hidden name=имя_параметра value=сюда>?
И name=имя_элемента_формы - называйте вещи своими именами, иначе сами будете путаться и другие вас понимать не будут в вопросах ваших. | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 17:57)
| | Т.е. если я вас правильно понял, весь JS скрипт карты нужно поместить в значение value поля:
<input type=hidden name="maps" value="<script type="text/javascript">........</script>"> | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 18:02)
| | Я думаю, что на данной странице вообще не нужен никакой скрипт, ради того, чтобы вывести на страницу некое значение в виде переменной, которое должно быть отправлено в конечном итоге формой на сервер. А атрибут value этого поля формы и должен содержать это значение.
Зачем вам скрипт, да еще передавать его на сервер? | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 18:07)
| | Чё то я ни как не могу уловить ход ваших мыслей...
Т.е. в атрибут value нужно сразу вставлять значение координат карты?
А как это сделать не добавляя JS скрипт на страницу с формой, если в нем содержится значение выбранных координат метки в виде переменной "var metka"?
И сама карта не может отображаться без её JS, тк. она выводится с помощью:
<div align="center" id="YMapsID" style="width:600px;height:300px" class="border_punktir"></div>
|
Код самой карты:
<script type="text/javascript">
window.onload = function () {
map = new YMaps.Map(document.getElementById("YMapsID"));
.....
</script>
|
| |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 18:25)
| | Я не знаю, что вы хотите делать на своей странице с этими координатами. Я вижу только код, который вы представляли ранее. Именно в нем вы сперва выводите некую переменную посредством для JS, а затем спрашиваете как ее поместить в форму. Ответ очевиден - помещать в форму сразу.
Вы лучше объясните что вы пытаетесь сделать, что передать, и лучше откройте новую тему.
Все эти YMaps.Map лично мне ни о чем не говорят, вернее не поясняют ситуацию. | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 18:40)
| | Если честно я уже сам запутался, мозг видимо уже перегрелся.
Соберусь с мыслями и открою новую тему. | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 19:06)
| | Тогда информация для мыслей ваших. Изначально, вы, по совету, делали следующее
<script type="text/javascript">
var metka = 10;
location.href = 'adres.php?metka='+metka;
</script>
|
Оказалось, что это не то, так как надо формой передать. Я вам и говорю - на кой черт тогда нужен этот скрипт, если сразу при выводе формы для пользователя поместить это в ее поле:
<input type="hidden" name="metka" value="10" />
|
Выясняется, что то ли значение это будет изменяться, то ли еще по каким причинам, которые вы объяснить не можете, вы впихиваете в значение уже весь JS код. Я тем более не знаю, а объяснить просто словами суть того, чего вам надо, вы не можете. Тупик.
С помощью JS-сценария можно переопределить значение поля формы, если нужно именно это. Если вам при этом нужно иметь на сервере, после отправки формы, и еще имя переменной, владелицы этого значения, то достаточно полю формы дать это имя.
В результате чего JS-значение должно быть помещено в вашу форму, тоже вопрос. Это может быть результат обработки события, или при отправке формы это значение будет помещено в форму... не понять тоже. Но как пример.
//это переменная, которую определил сервер
var metka = 10;
//а это пусть будет сценарий, который обрабатывает щелчок клиента
function my() {
metka += 10;
//и помещает это измененное значение
//в скрытое поле формы,
//которое имеет id равное 'mtk'
document.getElementById('mtk').value = metka;
}
| В этом случае действительно есть необходимость в сценарии, так как меняется значение, а затем помещается в форму. В отличие от первого случая, когда просто объявляется, а затем просто подставляется в форму. Потому и был вопрос - а зачем JS в этом случае? | |
|
|
|
|
|
|
|
для: confirm
(14.04.2012 в 19:33)
| | Спасибо!
Именно благодаря вашему последнему примеру кода я придумал как решить данный вопрос!!!
Единственный вопрос: будет ли вышеуказанная функция my() выполнятся первой (перед отправкой формы на сервер) при нажатии кнопки "Отправить", которая в свою очередь, будет одновременно служить отправкой формы и обработчиком события функции onClick="my();" | |
|
|
|
|
|
|
|
для: sega_z
(14.04.2012 в 21:19)
| | Форма обычно отправляется кнопкой submit, хотя это не означает, что нельзя отправить форму иным способом. Форму можно отправить и программно, методом submit().
Я так и не знаю, чего вы делаете, но при отправке формы наступает событие onsubmit(), которое тоже может вызвать любую нужную вам функцию. То есть до ее отправки можно выполнить все, что угодно. Выбирайте. | |
|
|
|