jQuery.timer如何在php中获取当前值?

我正在使用这个jquery计时器来收集它运行时花费的时间。

https://github.com/walmik/timer.jquery

http://jquerytimer.com/

如何将当前值转换为php变量?

我想要一个按钮,当点击时保存输入字段中的当前值。

问题是,当我在表单中包装输入并期望使用$ _POST [‘fieldID’]来收集值时,它会禁用jqueryTimer。

我可以从表单中提取输入字段,但是收集jQuery提供的当前值的最佳方法是什么? 编写一个脚本添加,用jQueryTimer中的当前值填充隐藏字段?

如果调用暂停和重启,也可以更新php可用的值,这将是理想的。

编辑显示代码:

   $(document).ready(function(){ var hasTimer = false; // Init timer start $('.start-timer-btn').on('click', function() { hasTimer = true; $('.timer').timer({ editable: true }); $(this).addClass('d-none'); $('.pause-timer-btn, .remove-timer-btn').removeClass('d-none'); }); // Init timer resume $('.resume-timer-btn').on('click', function() { $('.timer').timer('resume'); $(this).addClass('d-none'); $('.pause-timer-btn, .remove-timer-btn').removeClass('d-none'); }); // Init timer pause $('.pause-timer-btn').on('click', function() { $('.timer').timer('pause'); $('.resume-timer-btn').removeClass('d-none'); }); // Remove timer $('.remove-timer-btn').on('click', function() { hasTimer = false; $('.timer').timer('remove'); $(this).addClass('d-none'); $('.start-timer-btn').removeClass('d-none'); $('.pause-timer-btn, .resume-timer-btn').addClass('d-none'); }); // Additional focus event for this demo $('.timer').on('focus', function() { if(hasTimer) { $('.pause-timer-btn').addClass('d-none'); $('.resume-timer-btn').removeClass('d-none'); } }); // Additional blur event for this demo $('.timer').on('blur', function() { if(hasTimer) { $('.pause-timer-btn').removeClass('d-none'); $('.resume-timer-btn').addClass('d-none'); } }); }); $('.timer').each(function() { console.log( this.val() ); });  

HTML:

  

目标:能够将当前值作为php var,以便将其提交到数据库。

先前的尝试发现,如果输入在表单标记内,则它不再起作用。

考虑的想法是在某些点击上更新隐藏的输入字段,这将允许它在PHP中用于插入到数据库。

这是我的建议。 它确实基于执行ajax请求。 当然,在这种情况下不需要表格。 正如已经评论过的那样,通过提交表单,与当前页面中的计时器相关的所有信息都将丢失,因为提交将刷新计时器所在的整个页面,或者甚至会重定向到另一个页面 – 如果需要的话。

您可以按原样运行我的代码,但是您需要在INSERT sql语句中更改数据库连接凭据和与db表相关的信息。

计时器位于index.php中 。 服务器端保存操作在saveTime.php中执行 – 我使用了PDO扩展。 数据库连接在connection.php中创建。

在客户端,通过单击.save-timer-btn按钮或.pause-timer-btn按钮启动保存操作 – saveTime() 。 但是你可以在你选择的事件上调用saveTime()

如果未定义发布的计时器值,则PHP代码会发送响应标头,该标头会触发ajax请求的错误function。 然后, 错误function将显示类型为危险的引导警报。 如果PHP无法识别传递的计时器状态,则同样适用。 如果保存操作成功,将显示成功警报。

注意:我的代码不依赖于您的代码,但它们只是略有不同。 这是因为我使用了计时器的最后一个版本( 0.7.1 )和jquerytimer.com演示中使用的代码。 我建议你注意每个代码行。 对不起:-)我还使用了Bootstrap的3.3.7版本。

注意:为了正确的错误报告/处理,您可以阅读本文和本文 ,因为我没有在我的PHP代码中实现它。

的index.php

        Demo - Timer         

Timer Demo

saveTime.php

 prepare($sql); $statement->execute([ ':time' => $time, ]); // Print success message. echo 'Time (' . $time . ' seconds) successfully saved when timer was ' . $state . '.'; exit(); 

connection.php

  PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => FALSE, PDO::ATTR_PERSISTENT => FALSE, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ] ); 

创建表语法

 CREATE TABLE `my_timer_table` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `time` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;