gpt4 book ai didi

javascript - AJAX 请求在 PHP switch 语句中不起作用

转载 作者:行者123 更新时间:2023-11-28 04:25:12 25 4
gpt4 key购买 nike

我在使用 PHP switch 语句接收 AJAX 请求时遇到问题,因此我想提供一些信息,然后提出我的问题:

首先,我在这里和其他地方查看了数十个答案,但在这个问题上没有成功。我最近在我的家庭服务器上从 PHP5 升级到 PHP7,因为我将操作系统从 Ubuntu 14.04 升级到 Ubuntu 16.04.2(仅限命令行安装)。我的 HTML/jQuery/PHP/Bash 过去可以很好地协同工作,但现在我的新 javascript 和 PHP 之间似乎出现了脱节。 请注意:我不再使用 jQuery,并且不想再在这个项目中使用它!

这是我测试过的:

  • 运行 bash 脚本的 PHP 代码是独立工作的(没有 switch 语句)。我房间的灯亮了。
  • 我尝试过 URI 编码,但它似乎没有帮助。
  • javascript“main.js”可以通过仅请求“controller.php”而省略任何?或变量(同样,在我的 PHP 代码中没有 switch 语句)来调用“controller.php”。我房间的灯亮了。
  • 单击 HTML 文件中的按钮按预期运行 java。

您对我尝试完成这项工作有什么想法吗?我想为几个按钮提供不同的 ID,以最终从服务器引发不同的响应。

提前致谢!

<小时/>

这是我的基本 HTML 文件包含的内容:

<!DOCTYPE html>
<html>
<head>
<title>Learning AJAX PHP</title>
<script type="text/javascript" src="main.js"></script>
</head>
<body>

<button id="lights" onClick="buttonSelect(this.id)">Toggle Lights now</button>

</body>
</html>

这是正在调用的 javascript 文件:

function buttonSelect(ButtonName){
var URLtoSend = "controller.php";
var xhttp = new XMLHttpRequest();
xhttp.open("POST", URLtoSend, true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("action= " + ButtonName);
alert("Sending this data: " + ButtonName);
}

最后,这是接收 POST 请求的 PHP:

<?php

if (isset($_POST["action"])) {
$javacomm = $_POST["action"];
} else {
break;
}

switch($javacomm){
case "lights":
$output=shell_exec("/var/www/scriptfiles/Button5 2>&1");
break;
case "lightsoff":
echo "lights are going out\n";
break;
default:
echo "Bad data!";
}

function lights() {
$output = shell_exec("/var/www/scriptfiles/Button5 2>&1");
exit;


?>

最佳答案

您的代码存在多个问题

  1. 您必须在xhttp.send之前设置请求 header

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

  • 您没有向 Controller 发送任何数据,您的 Controller 需要使用名称操作进行发布,因此您必须发送数据 xhttp.send("action= "+ ButtonName)

  • controller.php中,您忘记关闭函数lights() {}

  • 不是它的工作

    关于javascript - AJAX 请求在 PHP switch 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124100/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com