Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите пожалуйста с записью в БД по событию мыши. (https://javascript.ru/forum/misc/28849-pomogite-pozhalujjsta-s-zapisyu-v-bd-po-sobytiyu-myshi.html)

drenadan 04.06.2012 22:07

Помогите пожалуйста с записью в БД по событию мыши.
 
Добрый вечер.

Я Только начал изучать JS - помогите пожалйста с функцией записи в БД по событию наведения мыши.

<!DOCTYPE HTML>
<html>
<head>




<script type="text/javascript">





function mouseOver()
{
document.getElementById("button").src ="../images/button2.png";
}
function mouseOut()
{

document.getElementById("button").src ="../images/button1.png";

<?php

// Данные для mysql сервера
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpassword = ""; 
$dbname = "database"; 



$link = mysql_connect($dbhost, $dbuser, $dbpassword);


mysql_select_db($dbname, $link);

$query = "insert into customer values(0,'тест',
'тест')";

mysql_query($query, $link);



mysql_close($link);

?>

}




</script>



</head>
<body>
<a href="#">
<img border="0" alt="Пример 2" src="../images/button1.png" id="button" onmouseover="mouseOver()" onmouseout="mouseOut()" />
</a>
</body>
</html>


Уверен что в коде написана ересь полнейшая, не пинайте пожалуйста сильно.

В таком кособоком и кривом виде код отрабатывается только один раз (навели мышь, появилось картинка - записалось в бд)

по каждый последующий не работает, снова начинает работать только после обновления страницы.

9xakep 04.06.2012 22:10

Я бы использовал ajax, каждый раз отправляешь ajax-запрос, и в php его обрабатываешь.

Deff 04.06.2012 22:12

drenadan,
Объясните подробней - этот код в браузере на клиенте ?
Что он должен отправлять ?

drenadan 04.06.2012 22:28

код лежит на сервере.

я с JS не сталкивался к сожалению до этого
Задача состоит в том что:
Собираю робота, до этого управление делал через програмку накатанную на делфи, с усовершенствованием железа (добавился модуль Ethernet) переделываю управление через Инет

по идее есть область вида римской единицы, блоки разбиты следующим образом : Центр - Стоп , верхний центральный блок - газ , Верхний левый - поворот влево, верхний правый - поворот вправо, ну и так же назад.

мохги на роботе считывают по средством ГЕТ запросов показания с БД и очишают ... на деле Выглядит так - Навели на область ГАЗ - запись в базу с значением 255 (к примеру, там не важно ), железка на роботе обратилась к скрипту на вэб сервере считала данные - выполнила - очистила таблицу .... все реализовано кроме записи данных в БД по наведению на область ... буду рад любым советам.

drenadan 05.06.2012 00:01

Цитата:

Сообщение от 9xakep (Сообщение 178958)
Я бы использовал ajax, каждый раз отправляешь ajax-запрос, и в php его обрабатываешь.

а можете привести пример, каким образом это реализовывается ?

Deff 05.06.2012 00:43

Цитата:

Сообщение от drenadan
по идее есть область вида римской единицы, блоки разбиты следующим образом : Центр - Стоп , верхний центральный блок - газ ,

Если есть область - то должен быть код
Пока трудно даже сказать, каким местом js cюда, если непонятно каким макаром и где это прописано

Если это браузерная вещь - должен быть некий HTML код вашего рабочего стола управления

9xakep 05.06.2012 09:28

drenadan,
var last_id = new XMLHttpRequest(); // создете новый запрос
last_id.open('post', 'tochat.php', true) // post, куда, true
last_id.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // это просто нужно
last_id.send("c=1")	// и что-нибудь посылаете

if($_POST['c']) { // если запрос был осуществлен..
//code...
}
// того вы сделали тоже самое, этого хотели?

drenadan 05.06.2012 12:49

Цитата:

Сообщение от 9xakep (Сообщение 179052)
drenadan,
var last_id = new XMLHttpRequest(); // создете новый запрос
last_id.open('post', 'tochat.php', true) // post, куда, true
last_id.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // это просто нужно
last_id.send("c=1")	// и что-нибудь посылаете

if($_POST['c']) { // если запрос был осуществлен..
//code...
}
// того вы сделали тоже самое, этого хотели?

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

еще раз спасибо. начинаю понимать принцип работы

Вот что получилось.

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">

    function mouseOver()
      {
        document.getElementById("button").src ="../images/button2.png"; 
        var last_id = new XMLHttpRequest(); // создете новый запрос
        last_id.open('post', '4.php', true) // post, куда, true
        last_id.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // это просто нужно
        last_id.send("c=1")	// и что-нибудь посылаете
   
        if($_POST['c=1']) { // если запрос был осуществлен..
        <?php
        // Данные для mysql сервера
        $dbhost = "localhost"; // Хост
        $dbuser = "root"; // Имя пользователя
        $dbpassword = ""; // Пароль
        $dbname = "database"; // Имя базы данных

        // Подключаемся к mysql серверу
        $link = mysql_connect($dbhost, $dbuser, $dbpassword);

        // Выбираем нашу базу данных
        mysql_select_db($dbname, $link);
        // Добавляем запись в нашу таблицу customer
        // т.е. делаем sql запрос
        $query = "insert into customer values(0,'Иванов Иван Иванович',
        '(095) 555-55-55')";
        
        mysql_query($query, $link);


        // Закрываем соединение
        mysql_close($link);

        ?>

      }
       // того вы сделали тоже самое, этого хотели?
      }
        function mouseOut() 
      {

        document.getElementById("button").src ="../images/button1.png";
      }

</script>
</head>
<body>
<a href="#">
<img border="0" alt="Пример 2" src="../images/button1.png" id="button" onmouseover="mouseOver()" onmouseout="mouseOut()" />
</a>
</body>
</html>

9xakep 05.06.2012 15:14

А это нормально? О_о:
if($_POST['c=1']) { // если запрос был осуществлен..
        <?php
        // Данные для mysql сервера
        $dbhost = "localhost"; // Хост
        $dbuser = "root"; // Имя пользователя
        $dbpassword = ""; // Пароль
        $dbname = "database"; // Имя базы данных

Может быть if($_POST['c']) {} запихнете в php?))

drenadan 05.06.2012 15:44

Цитата:

Сообщение от 9xakep (Сообщение 179143)
А это нормально? О_о:
if($_POST['c=1']) { // если запрос был осуществлен..
        <?php
        // Данные для mysql сервера
        $dbhost = "localhost"; // Хост
        $dbuser = "root"; // Имя пользователя
        $dbpassword = ""; // Пароль
        $dbname = "database"; // Имя базы данных

Может быть if($_POST['c']) {} запихнете в php?))

да, моя тупость , прошу извинить.спасибо Вам что ткнули носом.

теперь при уходе с области я могу таким же образом через mouseOut отправить запрос и если он осуществлен выполнить php скрипт очистки таблицы в БД ?


Часовой пояс GMT +3, время: 08:01.