Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量从Javascript传递到PHP?_Javascript_Php_Twitter Bootstrap - Fatal编程技术网

如何将变量从Javascript传递到PHP?

如何将变量从Javascript传递到PHP?,javascript,php,twitter-bootstrap,Javascript,Php,Twitter Bootstrap,我检查了几十个已经回答过的类似主题,我根本无法回避我的问题。 我使用的是一个bootstrap日期时间选择器(),我的目标是在日期更改时将显示的值从保存日历(calendar.php)的页面传递到php文件(data.php) 下面我添加了代码。因为我在本地存储了一些文件,所以我从Chrome的开发工具中添加了一些信息 日期选择器工作正常,我可以用Javascript获取值。 问题是没有任何东西传递给PHP。 检查语法..在这一点上,我觉得一切都很好。 我不知道我做错了什么。任何建议都将受到欢迎

我检查了几十个已经回答过的类似主题,我根本无法回避我的问题。 我使用的是一个bootstrap日期时间选择器(),我的目标是在日期更改时将显示的值从保存日历(calendar.php)的页面传递到php文件(data.php)

下面我添加了代码。因为我在本地存储了一些文件,所以我从Chrome的开发工具中添加了一些信息

日期选择器工作正常,我可以用Javascript获取值。 问题是没有任何东西传递给PHP。 检查语法..在这一点上,我觉得一切都很好。 我不知道我做错了什么。任何建议都将受到欢迎

calendar.php:

<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript" src="moment.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript" src="bootstrap-datetimepicker.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap-datetimepicker.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class='col-sm-6'>
            <div class="form-group">
            <div  class='input-group date'  id='datetimepicker1' >
            <input type='text' id='date' name='date' class="form-control" >
                    <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
           </div>
         </div>
 <script type="text/javascript">

 $(document).ready(function() {
  $(function () {
   // Formatting how date is displayed
    $('#datetimepicker1').datetimepicker({
    calendarWeeks: true,
    format: "YYYY MM DD"
        });
//Displaying the current date in the text box when the page is accessed
$('#datetimepicker1').data("DateTimePicker").date(new Date());

// Sending the date to PHP when the user is changing it
//dp.change is an event fired when date is changed
$('#datetimepicker1').on("dp.change",function(){
var day  = $('#date').val();
$.ajax({
    type: "POST",
    url:  "data.php",
     data: { day : day } })
    .done(function() { alert(day); })
    .fail(function() { alert("error"); })

});
})

})
</script>
</div>
</div>
</body>
</html>
包含Javascript代码的文件和包含PHP代码的文件位于同一文件夹中

PHP(data.PHP)代码如下:

<?php

if(isset($_POST['day']))
{
$day = $_POST['day'];

echo $day;
}

?>

我根本不知道我在上面的代码中做错了什么或遗漏了什么

编辑:

我认为我没有很好地关注我所面临的问题,对此我感到抱歉。您所有的建议(非常感谢)都是关于.done(函数)的

我的问题是我的php文件(data.php)是空的。阿贾克斯没有过这个日期,我也不知道为什么。这篇文章没有发生。
我尝试了大家提到的所有建议,认为它们可能是答案,但运气不好。

您应该在ajax响应函数中添加相同的变量以打印响应,即

.done(function(data){
  alert(data);
})

PHP正在输出值。web服务器正在将值发送到浏览器。浏览器将该值赋予JavaScript。jQuery是一个有价值的进程。然后你忽略它

它作为第一个参数传递给传递给
done
的函数,请使用它

.done(function(data_in_response) { alert(data_in_response); })

首先,谢谢你的回答,昆汀。不幸的是,我也编辑了这篇文章,我的问题是我的data.php文件;该文件未接收从calendar.php发送的数据。我真的不知道我错过了什么。附言:我也尝试过你的解决方案,认为这可能是我一直在寻找的答案,但没有运气。“该文件没有收到从calendar.php发送的数据”-你怎么会这样认为?它所做的只是将数据回显到JS,而您的JS会忽略它。“我也尝试了您的解决方案”-您尝试时发生了什么?您做了什么来找出发生了什么?您是否使用浏览器中内置的开发人员工具来检查控制台是否存在错误,以及“网络”选项卡以查看哪些数据正在发送到服务器以及服务器响应的内容?网络选项卡确实很有帮助,而且我确切地看到了“data\u in\u response”是关于什么以及data.php如何发送数据的。谢谢你的指点。我设法实现了我希望做的事。
.done(function(data_in_response) { alert(data_in_response); })