我使用https://github.com/weareoutman/clockpicker来设置时间:
<script type="text/javascript">
$('.clockpicker-with-callbacks').clockpicker({
donetext: 'Done',
afterDone: function() {
$.post( "2_settime.php", {
attime : this.value
})
}
})
.find('input').change(function(){
console.log(this.value);
});
if (/Mobile/.test(navigator.userAgent)) {
$('input').prop('readOnly', true);
}
</script>
这里是2_settime.php,其中包含数据:
<?
// Config file!
include "config.php";
// Create connection
$conn = new mysqli($dbhost, $dbusr, $dbpass, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//param-vars
$attime=strval($_POST['attime']);
$attime=strval($_GET['attime']);
//$attime=$_POST['attime'];
//CHANGE STATUS
$conn->query("UPDATE 2dopuzzler SET attime = '$attime' WHERE ordernum = 123");
echo $attime;
?>
就是这样。我可以通过以下方式将时间写入mysql:2_settime.php?attime=18:51
echo $ attime; - 正常工作,但我无法从另一个php获取时间,这里是clockpicker。请帮忙。
更新<!/强>
为了确保它正确,我改变了脚本:
<script type="text/javascript">
$('.clockpicker-with-callbacks').clockpicker({
donetext: 'Done',
afterDone: function() {
$.post( "2_settime.php", {
attime: this.value
}).done(function( data, status ) {
console.log('data: '+data+' status: '+status);
if(data == 'success' && status == 'success'){
}else{
}
}
);
}
})
.find('input').change(function(){
console.log(this.value);
});
if (/Mobile/.test(navigator.userAgent)) {
$('input').prop('readOnly', true);
}
</script>
因此。我进入我的控制台:data: status: success
答案 0 :(得分:1)
看一下代码的这一部分:
$attime=strval($_POST['attime']);
$attime=strval($_GET['attime']);
你做了什么:
$_POST['attime']
将POST变量读入$attime
。$_GET['attime']
写入现有变量$attime
。由于未在发布请求中设置$_GET['attime']
,您将丢失第一行中保存的值。
解决方案可能是:
if(isset($_POST['attime'])) {
$attime=strval($_POST['attime']);
} else if(isset($_GET['attime'])) {
$attime=strval($_GET['attime']);
} else {
//not sent
$attime=null;
}
或者,您可以使用$_REQUEST['attime']
。但是,不清楚价值是通过获取还是发布