Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как занести значение в mysql с помощью JS
 
 автор: sega_z   (06.04.2012 в 13:29)   письмо автору
 
 

Добрый день!

Никак не могу найти, скрипт JS который бы заносил строковое значение переменной JS в таблицу Mysql и выводил её оттуда.

Приведите, пожалуйста пример такого скрипта JS

  Ответить  
 
 автор: confirm   (06.04.2012 в 13:55)   письмо автору
 
   для: sega_z   (06.04.2012 в 13:29)
 

И не найдете, так как JS у клиента, а MySQL на сервере.
Передавайте эти значения на сервер, а php-скрипт их поместит в базу.

  Ответить  
 
 автор: sega_z   (06.04.2012 в 14:30)   письмо автору
 
   для: confirm   (06.04.2012 в 13:55)
 

А как передать значения на сервер?

  Ответить  
 
 автор: confirm   (06.04.2012 в 14:35)   письмо автору
 
   для: sega_z   (06.04.2012 в 14:30)
 

Да обыкновенным способом, как обычно все и передается:
а) помещать их в форму (готовую, но скрытую, либо создаваемую динамически), и отправляя ее с помощью JS;
б) посредством url-запроса, в который поместить эти переменные как его параметры;
в) асинхронным методом - ajax.
В любом из этих случаев, запрос должен обращаться к скрипту на сервере, который их примет, обработает и поместит в базу.

  Ответить  
 
 автор: sega_z   (06.04.2012 в 15:23)   письмо автору
 
   для: confirm   (06.04.2012 в 14:35)
 

А можете привести пример к варианту "б", чтобы затем я мог переместить эти данные из массива $_GET[....] в базу данных.

  Ответить  
 
 автор: confirm   (06.04.2012 в 15:56)   письмо автору
 
   для: 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-массива данных, то таковой можно передать и формой, именно этим методом она и передается по умолчанию.

  Ответить  
 
 автор: sega_z   (06.04.2012 в 16:36)   письмо автору
 
   для: confirm   (06.04.2012 в 15:56)
 

Спасибо Вам за помощь!

  Ответить  
 
 автор: sega_z   (10.04.2012 в 17:28)   письмо автору
 
   для: sega_z   (06.04.2012 в 16:36)
 

Подскажите, пожалуйста, как обратно из массива $_GET[....] занести данные в переменную JS ?

  Ответить  
 
 автор: confirm   (10.04.2012 в 17:45)   письмо автору
 
   для: sega_z   (10.04.2012 в 17:28)
 

А зачем их тогда отправлять было?
Может быть вы делаете совсем не нужное или не так. Что за задачу вы решаете?
А передать значения переменных, как и определить сами переменные на стороне сервера для JS, можно при формировании страницы перед отправкой ее пользователю:
<script>
<?php echo 'var a = 12;' ?>
</script>
и в сценариях пользователя будет доступна переменная а со значением 12.

  Ответить  
 
 автор: sega_z   (10.04.2012 в 17:54)   письмо автору
 
   для: confirm   (10.04.2012 в 17:45)
 

Нет, это просто сервер передает совсем другую переменную в JS.
Все понятно, спасибо за очередную помощь!!!

  Ответить  
 
 автор: sega_z   (12.04.2012 в 12:33)   письмо автору
 
   для: sega_z   (10.04.2012 в 17:54)
 

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

  Ответить  
 
 автор: confirm   (12.04.2012 в 12:38)   письмо автору
 
   для: sega_z   (12.04.2012 в 12:33)
 

Любой запрос на сервер, означает получение нового содержимого, а значит перегрузка. Есть исключение из этого правила - Ajax.

  Ответить  
 
 автор: sega_z   (12.04.2012 в 13:12)   письмо автору
 
   для: confirm   (12.04.2012 в 12:38)
 

Спасибо, раньше я этого не знал...

  Ответить  
 
 автор: Красная_шляпа   (12.04.2012 в 13:31)   письмо автору
 
   для: 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']
            }

  Ответить  
 
 автор: sega_z   (14.04.2012 в 16:18)   письмо автору
 
   для: Красная_шляпа   (12.04.2012 в 13:31)
 

Спасибо, отличное решение.

  Ответить  
 
 автор: sega_z   (14.04.2012 в 16:20)   письмо автору
 
   для: sega_z   (14.04.2012 в 16:18)
 

<script type="text/javascript">
var metka = 10;
location.href = 'adres.php?metka='+metka;
</script>


А как передать в этом случае несколько переменных (как правильно написать location.href =....)?

  Ответить  
 
 автор: ЯСА   (14.04.2012 в 16:45)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: sega_z   (14.04.2012 в 17:05)   письмо автору
 
   для: ЯСА   (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" с помощью вышеуказанной формы вместе с другими значениями полей, при нажатии "Отправить"?

  Ответить  
 
 автор: confirm   (14.04.2012 в 17:20)   письмо автору
 
   для: sega_z   (14.04.2012 в 17:05)
 

Что-то мне подсказывает, что вы занимаетесь совсем не тем. Что такое metka?

  Ответить  
 
 автор: sega_z   (14.04.2012 в 17:34)   письмо автору
 
   для: confirm   (14.04.2012 в 17:20)
 

Это координаты метки на карте, которые нужно передать с остальными значениями полей в базу данных.

Т.е. на одной странице создается объявление и указывается метка на карте (координаты которой заносятся в "var metka"), а на другой странице (просмотра) эта метка отображается на карте.

  Ответить  
 
 автор: confirm   (14.04.2012 в 17:37)   письмо автору
 
   для: sega_z   (14.04.2012 в 17:34)
 

Вы же сами пишите, что эта страница выводит и обрабатывает форму, так зачем вам помещать нечто сначала как переменную JS, а потом перемещать ее в форму. Вот и создавайте сразу скрытое поле в форме и вносите в него то, чего вам надо.

  Ответить  
 
 автор: sega_z   (14.04.2012 в 17:41)   письмо автору
 
   для: confirm   (14.04.2012 в 17:37)
 

Дак дело в том, что я не знаю как создать скрытое поле и занести в него данные JS

  Ответить  
 
 автор: confirm   (14.04.2012 в 17:43)   письмо автору
 
   для: sega_z   (14.04.2012 в 17:41)
 

Так пора бы уже изучить этот вопрос - http://www.php.su/phphttp/forms/?elements

  Ответить  
 
 автор: sega_z   (14.04.2012 в 17:50)   письмо автору
 
   для: confirm   (14.04.2012 в 17:43)
 

А как записать значения переменной JS в "value" поля <input type=hidden name=имя_параметра value=значение>?

  Ответить  
 
 автор: confirm   (14.04.2012 в 17:57)   письмо автору
 
   для: sega_z   (14.04.2012 в 17:50)
 

Вы сперва объясните, зачем вам в данном код вообще нужно JS значение? Вы что его сразу не можете поместить в <input type=hidden name=имя_параметра value=сюда>?
И name=имя_элемента_формы - называйте вещи своими именами, иначе сами будете путаться и другие вас понимать не будут в вопросах ваших.

  Ответить  
 
 автор: sega_z   (14.04.2012 в 18:02)   письмо автору
 
   для: confirm   (14.04.2012 в 17:57)
 

Т.е. если я вас правильно понял, весь JS скрипт карты нужно поместить в значение value поля:

<input type=hidden name="maps" value="<script type="text/javascript">........</script>">

  Ответить  
 
 автор: confirm   (14.04.2012 в 18:07)   письмо автору
 
   для: sega_z   (14.04.2012 в 18:02)
 

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

  Ответить  
 
 автор: sega_z   (14.04.2012 в 18:25)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: confirm   (14.04.2012 в 18:40)   письмо автору
 
   для: sega_z   (14.04.2012 в 18:25)
 

Я не знаю, что вы хотите делать на своей странице с этими координатами. Я вижу только код, который вы представляли ранее. Именно в нем вы сперва выводите некую переменную посредством для JS, а затем спрашиваете как ее поместить в форму. Ответ очевиден - помещать в форму сразу.
Вы лучше объясните что вы пытаетесь сделать, что передать, и лучше откройте новую тему.
Все эти YMaps.Map лично мне ни о чем не говорят, вернее не поясняют ситуацию.

  Ответить  
 
 автор: sega_z   (14.04.2012 в 19:06)   письмо автору
 
   для: confirm   (14.04.2012 в 18:40)
 

Если честно я уже сам запутался, мозг видимо уже перегрелся.
Соберусь с мыслями и открою новую тему.

  Ответить  
 
 автор: confirm   (14.04.2012 в 19:33)   письмо автору
 
   для: 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 в этом случае?

  Ответить  
 
 автор: sega_z   (14.04.2012 в 21:19)   письмо автору
 
   для: confirm   (14.04.2012 в 19:33)
 

Спасибо!

Именно благодаря вашему последнему примеру кода я придумал как решить данный вопрос!!!

Единственный вопрос: будет ли вышеуказанная функция my() выполнятся первой (перед отправкой формы на сервер) при нажатии кнопки "Отправить", которая в свою очередь, будет одновременно служить отправкой формы и обработчиком события функции onClick="my();"

  Ответить  
 
 автор: confirm   (14.04.2012 в 21:41)   письмо автору
 
   для: sega_z   (14.04.2012 в 21:19)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования