我覺得我的問題會非常簡單,但我已經在很多方面嘗試過,並且它們都不起作用,我不知道還有什麼可以轉向。使用PHP刪除XML行
我想實現的是:我想從XML文件中刪除單個元素。
這種情況:我有一個真正簡單構建的XML文件。這將是在未來更復雜的,但現在它看起來像這樣:
XML
<?xml version="1.0"?>
<list>
<ingredient>First item</ingredient>
<ingredient>Second item</ingredient>
</list>
顯示到一個HTML頁面此列表。現在,當它們被生成到頁面上時,它們被賦予一個數字,從0開始數起來。因此,第一種成分的數字爲0,第二種成分的數字爲1等。他們有一個onclick,它將我發送給持有該數字的jQuery。我已經測試過,工作正常。
現在就是它出錯的地方。我嘗試了Javascript的$ .ajax(),jQuery的$ .post(),甚至使HTML元素直接與帖子形式。他們似乎都沒有工作,即使我直接從其他地方複製示例。
我的PHP文件刪除的項目如下:
PHP
<?php
header('Location:index.php');
$xmldoc = new DOMDocument();
$xmldoc->load('ingredients.xml');
$root = $xmldoc->firstChild; //Take the <list> tag
$toDel = $_POST['itemToDel']; // This is the number received of the relevant item
$root->removeChild(item($toDel));
$xmldoc->save('ingredients.xml');
?>
沒有人對我有一個想法?當我用一個經過驗證的工作PHP代碼進行測試時,它並沒有實現,所以我有感覺介於PHP和Javascript之間的行爲,但它並沒有實現。截至目前,因爲我打消了我以前的嘗試,這是我的JavaScript現在:
function removeItem(item){
var itemToDel = item; // The number of the item to delete.
var removeItem = $('.ingredient')[itemToDel].remove(); // removing the HTML parts
//Remove the matching XML line
}
最後一刻編輯:我可以在我的XML文件中寫入(權限都OK了),我已經使用其他PHP腳本確實有效,所以localhost確實支持它。
謝謝你的回覆THW,但是我想問一下多一點。在你的例子中,你將$ toDel表示爲3,並且你知道這個數字是可變的。我的問題是從HTML頁面獲取這個數字到PHP中。我可以在我的HTML頁面中定義它,並且我可以將其轉換爲JavaScript,但是轉換到PHP似乎並不如此。 – Mortaza
這個例子是自包含的,所以它可以在沒有外部依賴(文件,用戶輸入)的情況下執行。你必須適應它並再次使用'$ toDel = $ _POST ['itemToDel'];'。 – ThW
這回答了我的問題:)原來我做了一個成功的調用我的PHP文件,但與建議的PHP刪除它,它實際上刪除它。最後一個問題:你如何在foreach-bit中使用evaluate()?它通過使用'。((int)$ toDel)不正確嗎?'或者我誤解評估()? – Mortaza