Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   число в базу (https://javascript.ru/forum/misc/53804-chislo-v-bazu.html)

Miheeva 18.02.2015 20:58

число в базу
 
Здравствуйте) у меня имеется код:

<p id="dynamic-number">0</p>
<script>
var currentNumber = $('#dynamic-number').text();


$({numberValue: currentNumber}).animate({numberValue: 1000}, {
duration: 400000,
easing: 'linear',
step: function() { 
$('#dynamic-number').text(Math.ceil(this.numberValue)/1000000); 
}
});

</script>

Это код счетчика - увеличивается число. Как сделать чтобы была кнопка на которую нажимаешь (захватывает число) и вносит в базу? и как можно установить макс? Число должно выглядеть так 0.000001$ И как сделать чтобы после обновления страницы число не обнулялась? =)

ksa 18.02.2015 22:21

Цитата:

Сообщение от Miheeva (Сообщение 357218)
вносит в базу?

Какую именно базу?

Miheeva 18.02.2015 22:36

Цитата:

Сообщение от ksa (Сообщение 357230)
Какую именно базу?

Чтобы число вводилось в базу данных (Mysql) в определенную таблицу.

laimas 18.02.2015 22:55

var o = $('#dynamic-number').on('click', function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

$({numberValue: o.text()}).animate({numberValue: 1000}, {
    duration: 400000,
    easing: 'linear',
    step: function() { 
        o.text(Math.ceil(this.numberValue)/1000000) 
    }
});


Пропустил - а максимальное что, достижение какого-то значения text()?

Miheeva 18.02.2015 23:06

Цитата:

Сообщение от laimas (Сообщение 357239)
var o = $('#dynamic-number').on('click', function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

$({numberValue: o.text()}).animate({numberValue: 1000}, {
    duration: 400000,
    easing: 'linear',
    step: function() { 
        o.text(Math.ceil(this.numberValue)/1000000) 
    }
});


Пропустил - а максимальное что, достижение какого-то значения text()?

Можно полный скрипт с кнопкой и update (чтобы прибавляло уже к имеющему числу) числа в базе?

Ну к примеру таймер стартуйет с 0.000000 и чтобы он даходил до 0.001000 и остановился...

laimas 18.02.2015 23:12

Ну у вас вообще-то не таймер, а анимация, и вы уже определили в параметре ее именно 0.001000 (вернее будет 0.001), и анимация остановится.

Кнопкой можно - вот это:
var o = $('#dynamic-number').on('click', function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

заменить на это:
var o = $('#dynamic-number');

$('button').click(function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

добавив в код кнопку <button>Update</button>

А прибавлением будет заниматься не кнопка, а сервер, посредством запроса к базе - 'UPDATE table_name SET field_name=field_name+полученное и обработанное значение от клиента WHERE если есть'

Miheeva 18.02.2015 23:15

Цитата:

Сообщение от laimas (Сообщение 357241)
Ну у вас вообще-то не таймер, а анимация, и вы уже определили в параметре ее именно 0.001000 (вернее будет 0.001), и анимация остановится.

Кнопкой можно - вот это:
var o = $('#dynamic-number').on('click', function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

заменить на это:
var o = $('#dynamic-number');

$('button').click(function() {
   //ajax запрос с отправкой o.text() серверу
   //как его сделать и записать в базу знаете?
});

добавив в код кнопку <button>Update</button>

А можно ajax запрос?

laimas 18.02.2015 23:24

Можно :)
$('button').click(function() {
    $.post(url_php_скрипта, {num : o.text()}) /*если ответ сервера не нужен, то все, иначе*/, function(d) {
        //d содержит ответ сервера
    })
});

На сервере $_POST['num'] будет содержать отправленное клиентом значение

PS. Поправка, вы определили окончание анимации при 0.001 вот здесь - numberValue: 1000

Miheeva 18.02.2015 23:28

Цитата:

Сообщение от laimas (Сообщение 357243)
Можно :)
$('button').click(function() {
    $.post(url_php_скрипта, {num : o.text()}) /*если ответ сервера не нужен, то все, иначе*/, function(d) {
        //d содержит ответ сервера
    })
});

На сервере $_POST['num'] будет содержать отправленное клиентом значение

PS. Поправка, вы определили окончание анимации при 0.001 вот здесь - numberValue: 1000

теперь счетчик не тикает(

Miheeva 18.02.2015 23:33

Цитата:

<p id="dynamic-number">0</p>
<button>Update</button>
<script>
var o = $('#dynamic-number');

$('button').click(function() {
$.post(fers.php, {num : o.text()}) /*если ответ сервера не нужен, то все, иначе*/, function(d) {
//d содержит ответ сервера
}});

$({numberValue: o.text()}).animate({numberValue: 1000}, {
duration: 400000,
easing: 'linear',
step: function() {
o.text(Math.ceil(this.numberValue)/1000000)
}
});




</script>
Поправила теперь счетчик идет, но он что то не хочет к php файлу конектится, для проверки прописала alert но он не выскакивает..

laimas 18.02.2015 23:39

Гражданка Михеева, только без паники, просто я думал, что вы знаете синтаксис. Вот загрузите это на локальный сервер, обзовите как хотите и запустите - все будет тикать и возвращать вам результат.
<?
if($_POST['num']) exit($_POST['num'])
?>
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>

</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script> 
$(function() {
    var o = $('#dynamic-number');

    $('button').click(function() {
        $.post(location, {num : o.text()}, function(d) {
            alert('Сервером получено значение '+d)
        })
    });

    $({numberValue: o.text()}).animate({numberValue: 1000}, {
        duration: 400000,
        easing: 'linear',
        step: function() { 
            o.text(Math.ceil(this.numberValue)/1000000) 
        }
    });
})
</script>     
</head> 

<body>
<p id="dynamic-number">0</p>
<button>Update</button>
</body> 
</html>

laimas 18.02.2015 23:41

Вы подправили, но не в том месте :)

Miheeva 18.02.2015 23:44

Цитата:

Сообщение от laimas (Сообщение 357247)
Вы подправили, но не в том месте :)


alert('Сервером получено значение ');

выскакивает это сообщение, а мне надо чтобы через div показывось)

Miheeva 18.02.2015 23:51

Цитата:

$(function() {
var o = $('#dynamic-number');

$('button').click(function() {
$.post("/fers.php", {num : o.text()}, function(d) {
alert(''+d)


})
});

$({numberValue: o.text()}).animate({numberValue: 1000}, {
duration: 400000,
easing: 'linear',
step: function() {
o.text(Math.ceil(this.numberValue)/1000000)
}
});
})
вот работает. А как сделать к примеру накопилось 0.100000 и при нажатий они списываются

laimas 18.02.2015 23:53

>и не пойму где php файл прописан)

Совсем плохо. Я же не знаю как вы назвали этот файл, поэтому в коде у меня обращение будет идти к текущему - $.post(location, {num : o.text()}, function(d)....

Если вы его обозвали test.php, значит location равен test.php, ели назвали test.html и что важно, у вас добавлено расширение .html как исполняемый файл, значит location будет равен test.html, и обращение будет к нему.

А вы что делаете?

Miheeva 18.02.2015 23:55

Цитата:

Сообщение от laimas (Сообщение 357250)
>и не пойму где php файл прописан)

Совсем плохо. Я же не знаю как вы назвали этот файл, поэтому в коде у меня обращение будет идти к текущему - $.post(location, {num : o.text()}, function(d)....

Если вы его обозвали test.php, значит location равен test.php, ели назвали test.html и что важно, у вас добавлено расширение .html как исполняемый файл, значит location будет равен test.html, и обращение будет к нему.

А вы что делаете?

Это уже сделала) получилось) тока как сделать чтобы не alert выскакивал а к примеру прописал <div id="alert"></div> и появилось сообщение?

laimas 18.02.2015 23:56

Откуда списывается - в базе или на клиенте в теге Р, или там и там?

Вы то в базу хоть записали? Пример мой этого не делает )

Miheeva 18.02.2015 23:58

вот сделала
Цитата:

document.getElementById("result").innerHTML="text" ;
теперь надо сделать чтобы с этого таймера списывались когда нажимаешь на кнопку... как это сделать?

laimas 18.02.2015 23:59

Я уже не поспеваю за вами.

alert('Сервером получено значение '+d)

заменить на

$('#alert').text(d)

Естественно что этот DIV должен быть на странице и если вы знаете что должно вернуть.

Miheeva 18.02.2015 23:59

Цитата:

Сообщение от laimas (Сообщение 357252)
Откуда списывается - в базе или на клиенте в теге Р, или там и там?

Вы то в базу хоть записали? Пример мой этого не делает )

ну у меня таймер просто тикает, но когда обновлю страницу то он заного обновляет :cray: как поправить?

laimas 19.02.2015 00:02

А этот джентльмен document.getElementById("result") каким боком ко всему этому отношение имеет?

Miheeva 19.02.2015 00:04

Цитата:

Сообщение от laimas (Сообщение 357256)
А этот джентльмен document.getElementById("result") каким боком ко всему этому отношение имеет?

ну он выводит через

<div id="result"></div>


(я добавила его)

laimas 19.02.2015 00:10

Первое - нет у вас таймера, есть таймер управляющий длительностью анимации, которую вы задаете здесь - duration: 400000
За период этой длительности число от 0 возрастает до 1000.

Второе - если у вас обновляется страница (по F5 к примеру), то естественно все будет запущено заново. Этого не поправить, и если вы хотите, чтобы, к примеру, счет дошел до 0.000250 и после F5 начался с него, то предыдущее состояние (сохраненное в базе), нужно загружать в тег Р.

А вы чего хотите?


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