无法通过$\u post['attime'])获取时间数据来更新mysql

dpiehjr4  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(274)

我用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 回音$attime;--工作,但我不能从另一个php那里是时钟选择器的时间。拜托,救命啊。
更新!
为了确保它是正确的,我更改了脚本:

<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

gojuced7

gojuced71#

请看一下这部分代码:

$attime=strval($_POST['attime']);
$attime=strval($_GET['attime']);

你的工作:
首先,通过 $_POST['attime'] 进入 $attime .
然后你写 $_GET['attime'] 到现有变量中 $attime .
作为 $_GET['attime'] 如果未在post请求中设置,则会丢失保存在第一行中的值。
解决方案可以是:

if(isset($_POST['attime'])) {
    $attime=strval($_POST['attime']);
} else if(isset($_GET['attime'])) {
    $attime=strval($_GET['attime']);
} else {
    //not sent
    $attime=null;
}

或者,您可以使用 $_REQUEST['attime'] . 但是现在还不清楚这个值是通过get还是post来实现的

相关问题