我刚刚将一台内网服务器从Windows Server 2008和IIS8迁移到Server 2016和IIS10——除了一个小的PHP功能之外,一切都很好——其余的xml操作页面都是在ASP中完成的,工作得很好——我检查并重新检查了 PHP 安装,甚至尝试从旧服务器(也有 php 配置文件)克隆 php 5.6 文件夹,但无济于事。 PHP 日志文件中没有生成任何错误!我想我更喜欢只用 ASP 重写代码,但我认为它比 PHP 代码复杂得多。任何帮助将不胜感激,因为我的时间有限,而且我还有很多其他任务要做。已经在这一单一功能上花费了太多时间。基本思想是查看特定的 cid(行),然后将状态从 In 切换到 Out,反之亦然。有一种感觉,ASP 代码可能比调试 PHP 安装更快。”
希望对于合适的人来说这是一个简单的问题。
像这样调用函数:
function change(stat,row) {
$.ajax({
type: "POST",
url: "js/update.php",
data: {status: stat, statrow: row},
success: function() {
location.reload();
}
});
php函数:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$status = $_POST['status'];
$row = $_POST['statrow'];
$rownum = (int)$row;
// echo $status," ",$rownum;
// load the document
// the root node is <Crew_List/> so we load it into $crewlist
$crewlist = simplexml_load_file('../xml/crew-list.xml');
//$currstatus = $crewlist->item[$rownum]->Status;
// update
if ($status == "In") {
$crewlist->item[$rownum]->Status = "Out";
} else {
$crewlist->item[$rownum]->Status = "In";
}
// save the updated document
$crewlist->asXML('../xml/crew-list.xml');
// echo "done";
?>
</body>
</html>
XML 文件:
<?xml version="1.0" standalone="true"?>
-<Crew_List>
-<item>
<cid>1</cid>
<Status>Out</Status>
<Name>Crew1</Name>
<Title>Purser</Title>
<Phone_Number>-</Phone_Number>
<EMail/>
</item>
-<item>
<cid>2</cid>
<Status>In</Status>
<Name>Crew2</Name>
<Title>Captain</Title>
<Phone_Number>-</Phone_Number>
<EMail/>
</item>
</Crew_List>
用 PHP 管理器尝试了很多东西,但无法让 php 功能正常工作。在具有 IIS8 和 PHP 5.6 的其他服务器上运行良好
通常 XML 是这样的:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
因此,请提供您的 XML
-<Crew_List>
-<item>
<?xml version="1.0" standalone="true"?>
线确保您需要将 XML 文件设置为可写,否则 PHP 将无法更新和保存文件。
因此,以下工作有效(100% 测试 - 第二条记录状态从
In
更新为 Out
):
XML
<Crew_List>
<item>
<cid>1</cid>
<Status>Out</Status>
<Name>Crew1</Name>
<Title>Purser</Title>
<Phone_Number>-</Phone_Number>
<EMail/>
</item>
<item>
<cid>2</cid>
<Status>In</Status>
<Name>Crew2</Name>
<Title>Captain</Title>
<Phone_Number>-</Phone_Number>
<EMail/>
</item>
</Crew_List>
PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
/*
$status = $_POST['status'];
$row = $_POST['statrow'];
*/
$status = "In";
$row = "1";
$rownum = (int)$row;
// echo $status," ",$rownum;
// load the document
// the root node is <Crew_List/> so we load it into $crewlist
$crewlist = simplexml_load_file('./crew-list.xml');
//$currstatus = $crewlist->item[$rownum]->Status;
// update
if ($status == "In") {
$crewlist->item[$rownum]->Status = "Out";
} else {
$crewlist->item[$rownum]->Status = "In";
}
// save the updated document
$crewlist->asXML('./crew-list.xml');
// echo "done";
?>
</body>
</html>