2
<?php
$files = glob('users/*.xml');
foreach($files as $file) {
$xml = new SimpleXMLElement($file, 0, true);
echo '
<tr>
<td><input type="radio" name="browser" onclick="check(this.value)" value="'. basename($file) .'"></td>
<td class="alternate-row1">'. basename($file, '.xml') .'</td>
<td><span id="itm1" onclick="exchange(this.id)">'. $xml->name .'</span><input id="itm1b" class="replace" type="text" name="newname"></td>
<td class="alternate-row1">'. $xml->lastname .'</td>
<td>'. $xml->email .'</td>
<td class="alternate-row1">'. $xml->level .'</td>
<td>'. $xml->birthday .'</td>
<td class="alternate-row1">'. $xml->gender .'</td>
<td>'. $xml->age .'</td>
<td class="alternate-row1">'. $xml->country .'</td>
</tr>';
}
session_start();
if (isset($_POST['save'])){
$member = $_POST['newname'];
$dom = new DOMDocument();
$dom->load('users/' . basename($file) . '.xml');
$editname = $dom->getElementsByTagName('name');
$newname = $dom->createTextNode($member);
foreach ($editname as $edit) {
$edit->parentNode->replaceChild($newname, $edit);
}
$dom->save('users/' . basename($file) . '.xml');
}
?>
所以我製作了這段代碼,就像你看到它有DOM和簡單的XML元素一樣。 我試圖用$_POST
throw輸入命令替換子項,輸入框位於上面的echo部分,我使用js替換代碼,它通過onclick命令將文本替換爲輸入文本(對於我的問題來說不是很重要,它只是爲了解釋) 。 無論如何,因爲它不工作,我得到了一點卡住的代碼,我設置了$_POST
,我嘗試使用一些指南,我發現堆棧溢出,但它沒有工作,因爲它不符合我的代碼。替換XML中的子項
您有什麼問題嗎?
謝謝你的幫助,Y. D.使用simplexml
--->看現場演示
我不敢肯定,但,你的解決方案似乎矯枉過正我。爲什麼不通過ajax調用一個php,並根據結果,從JavaScript更新dom? – Sebas 2013-03-23 12:12:36
沒有...它不可能acctualy從js更新dom,只能從PHP,我的問題是缺少某些東西,或者我使用DOM來代替SimpleXML,但我不知道如何解決它或什麼是我真正的問題,畢竟爲什麼我問這個問題題。 – 2013-03-23 12:15:12
請顯示您的xml和所需的xml樣本。 – michi 2013-03-23 15:06:45