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 05.06.2012 17:18

Спасибо Вам большое, 9xaker.

Сейчас все работает. вид имеет такой.


<!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")	// и что-нибудь посылаете
   


      <?php


        if($_POST['c']) { // если запрос был осуществлен..
        
        // Данные для 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";
        var last_id = new XMLHttpRequest(); // создете новый запрос
        last_id.open('post', 'clear.php', true) // post, куда, true
        last_id.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // это просто нужно
        last_id.send("m")	// и что-нибудь посылаете

    <?php

 if($_POST['m']) { // если запрос был осуществлен..

// Данные для mysql сервера
        $dbhost = "localhost"; // Хост
        $dbuser = "root"; // Имя пользователя
        $dbpassword = ""; // Пароль
        $dbname = "database"; // Имя базы данных
       

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

        // Выбираем нашу базу данных
        mysql_select_db($dbname, $link);
        
        mysql_query("TRUNCATE TABLE `customer`");

        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>



Еще есть пару вопросов, это нормально что при каждой функции мыши я вызываю запрос такой полный (подключение-выбор базы ...)
или можно как то проще сделать, к примеру инклуд всех параметров в начале операции а потом уже просто отправка в БД.

И еще вопрос: хочу все понять принцип работы этой строчки.
last_id.open('post', 'clear.php', true) // post, куда, true

я так понял что если указать куда (clear.php) и в файле не будет правильного скрипта php , событие сработает не правильно ?

9xakep 05.06.2012 17:25

Цитата:

Сообщение от drenadan
Еще есть пару вопросов, это нормально что при каждой функции мыши я вызываю запрос такой полный (подключение-выбор базы ...)

Я не особо шарю в php, но я бы подключился в самом начале страницы( до if) и все.
Цитата:

Сообщение от дренадан
last_id.open('post', 'clear.php', true) // post, куда, true

открывает post запрос на страницу clear.php, true означает асинхронный

Во время синхронного браузер немного подвисает, в данном случае все будет выполняться последовательно( например: запрос, потом алерт)

При асинхронном запрос выполняется незаметно для юзера, то бишь: алерт, и в это же время запрос.

9xakep 05.06.2012 17:29

Цитата:

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

Ну да, отсылайте только другую инфу, условно:
send("delete")
и в php: if ($_POST['delete']) {/*code...*/}..

drenadan 05.06.2012 17:35

Понял.

все оказалось куда проще ,он на самом деле читает файл который указывается в ПОСТ.

убрал лишенее.

Все работает :dance: и вид приятнее.

Спасибо Вам огромное 9xaker

Вид сейчас такой.

<!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")	// и что-нибудь посылаете
          }
                function mouseOut() 
      {
        document.getElementById("button").src ="../images/button1.png";
        var last_id = new XMLHttpRequest(); // создете новый запрос
        last_id.open('post', 'Clear.php', true) // post, куда, true
        last_id.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // это просто нужно
        last_id.send("m")	// и что-нибудь посылаете
     }
</script>
</head>
<body>
<a href="#">
<img border="0" alt="Пример 2" src="../images/button1.png" id="button" onmouseover="mouseOver()" onmouseout="mouseOut()" />
</a>
</body>
</html>


Навели на область - запись в БД, ушли с области - очистили таблицу .

drenadan 05.06.2012 18:57

еще раз спасибо, вот видео что получилось .(модуль ГАЗ)


http://www.youtube.com/watch?v=alDjmM211ao

если б не вы 9xaker я б еще долго копал =)


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