使用 ASP 而不是 PHP 编辑服务器端 XML 文件

问题描述 投票:0回答:1

我刚刚将一台内网服务器从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 的其他服务器上运行良好

php asp.net ajax xml
1个回答
0
投票

通常 XML 是这样的:

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

因此,请提供您的 XML

  1. 从以下内容中删除 - :
-<Crew_List>
-<item> 
  1. 删除
    <?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>

© www.soinside.com 2019 - 2024. All rights reserved.