我使用PHP和外部XML文件来显示一个HTML页面,允许用户更新项目的状态使用各种形式/输入按钮。
目前的格式,你可以看看在一个HTML页面项目的主列表和它们的状态,然后点击一个移动到一个新的HTML页面,让您可以指定项目的状态。因此,我可以点击“窗口小部件X”,然后看到一个新的页面(status.php?ID = X),然后点击标有“准备就绪”的按钮,和PHP将使用$ _GET [“身份证”]找到相关XML节点并用“就绪”替换它的属性。
出于某种原因,我绝对不能让PHP使用从$ _GET数据指定XML节点。这里是当前故障代码:
<?php
$idx = $_GET["id"]; /*Get id# from previous page*/
$xml = simplexml_load_file('test.xml'); /*Load external .xml*/
$array = array(100, 200, 300); /*Basic array for comparison*/
print_r($xml); /*Display contents of test.xml*/
$xml->item[$idx]->status = 'waiting'; /*change item $idx's status to 'waiting'*/
echo '<br/>';
print_r($xml); /*Display changed xml*/
/*Display changed basic array values to confirm $idx has a value*/
$array[$idx] = 123;
echo '<br/>';
print_r($array);
$array["$idx"] = 456;
echo '<br/>';
print_r($array);
$array["{$idx}"] = 789;
echo '<br/>';
print_r($array);
?>
这里是的test.xml的内容:
<?xml version="1.0" standalone="yes"?>
<widgets>
<item>
<name>Widget X</name>
<status>ready</status>
</item>
<item>
<name>Widget Z</name>
<status>waiting</status>
</item>
</widgets>
基本阵列具有使用没有问题$ IDX = $ _GET [ “ID”];选择更改哪个数组元素。但$ xml-> item [$ idx] - >状态不起作用。但是,如果我更改为$ idx = 0,则$ xml-> item [$ idx] - >状态确实有效。
这是一个错误,还是我失去了一些关于如何$ _GET或SimpleXML的作品?
不要使用$ xml - > [array]你需要在盒子外面思考,并且因此达到解决方案,所完成的研究的复杂性是改进未来指导方针开发的开端。你能想一想吗?使用$ _POST [数组] – 2015-02-11 19:49:52