javascript - 我正在尝试在 javascript 中获取价值,以 JSON 格式以 PHP 形式返回它
问题描述
我创建了一个日期选择功能,在底部显示选择(第二个绿色框)。我现在希望能够在 PHP 中检索用户的选择,然后以 JSON 格式发送。提前感谢您的任何建议或帮助。
这是我的代码:
function setToSelected(me){
const x = document.querySelector("span.active");
if (x !== null) {
x.classList.remove("active");
}
me.className='active';
console.log(me.id);
var dateselected=me.id.split('-')
var day=dateselected[0].split('_')[0]
var daynum=dateselected[0].split('_')[1]
var month=dateselected[0].split('_')[2]
switch(day){
case 'lun':
day='Lundi'
break;
etc...
default:
console.log("erreur conversion day")
}
switch(month){
case 'jan':
month='Janvier'
break;
case 'fev':
month='Fevrier'
break;
default:
console.log("erreur conversion month")
}
document.getElementById("dateselected").innerHTML = "Selected restart date : "+day+" "+daynum+" "+month+" à "+dateselected[1]+"h"
}
});
解决方案
所以我们有两种技术在这里工作,Javascript 在你的前端工作,php 在服务器端工作。要在 php 中检索数据服务器端,您需要从前端向 php 页面发出 post 请求,因为 php 仅在服务器端执行,而不是在前端执行。步骤如下
- 在 javascript 中获取您的日期信息
- 准备要发送的数据
- 通过 xhr 请求将数据发送到 php 页面
例子
// Step 1
var selecteddate = day+" "+daynum+" "+month+" "+dateselected[1]+"h";
// Now we have our javascriptobject called selecteddate;
// set target php page to post to
var url = "datereceiver.php";
// Step 2 create a post object
var dataToSend = {"fontenddate": selecteddate };
// Step 3 set request paramaters
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
// send request
xhr.send(selecteddate);
// set callback function to capture response from your php page(server)
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
// check response code
console.log(xhr.status);
// get your response from your php page
console.log(xhr.responseText);
}};
在 php 方面,您的 (datereceiver.php) 页面可能类似于
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$yourselecteddate = $_POST['frontenddate'];
$response = "date received";
}
else{
$response = "bad request";
}
// set response headers
header('Content-type: application/text');
echo $response;
?>
推荐阅读
- c# - 如何使用按钮单击更改布尔属性?
- r - 在计算分组统计数据之前删除 NA
- javafx - 不能在右下角放置按钮
- javascript - 如何为点击处理程序编写单元测试用例?
- c# - Windows 服务不启动 WPF 应用程序
- php - 将 Laravel 从 5.6 升级到 6.0 后,调用未定义的 str_random() 函数不起作用
- python-3.x - Python 地图与列表理解时间复杂度
- assembly - 为什么在 cmp 后添加“打印”会导致输出始终为“第一个输入大于第二个”?
- r - 检查列是否包含列表中的值并将该值分配给新列
- python - Python XML元素树解析一个大文档,返回一个子集