Я чувствую, что мой вопрос будет очень простым, но я пробовал его по-разному, и никто из них, похоже, не работает, я не знаю, куда еще обратиться.Удаление строки XML с использованием PHP
Что я хочу достичь: Я хочу удалить один элемент из файла XML.
Ситуация: У меня есть XML-файл, который действительно просто построен. Это будет более сложной в будущем, но сейчас это выглядит следующим образом:
XML
<?xml version="1.0"?>
<list>
<ingredient>First item</ingredient>
<ingredient>Second item</ingredient>
</list>
Этот список отображается на HTML-странице. Теперь, когда они сгенерированы на странице, им присваивается число, начиная с 0, подсчитывая. Итак, первый ингредиент имеет номер 0, а второй - номер 1 и т. Д. У них есть onclick, который отправляет меня в jQuery, удерживая это число. Это я протестировал и отлично работает.
Теперь вот где все пошло не так. Я пробовал $ .ajax(), jQuery jQuery javascript в $ .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 (разрешения в порядке), и я использовал другие PHP скрипты, работает, поэтому localhost действительно поддерживает его.
Спасибо за ответ THW, но я хотел бы спросить, немного больше. В вашем примере вы выражаете $ toDel как 3, и, как вы знаете, это число является переменной. Проблема для меня заключается в получении этого числа в PHP с HTML-страницы. Я могу определить его на моей HTML-странице, и я могу получить его в javascript, но переход на PHP, похоже, не идет. – Mortaza
Пример самодостаточен, поэтому его можно выполнять без внешних зависимостей (файл, пользовательский ввод). Вы должны адаптировать его и использовать '$ toDel = $ _POST ['itemToDel'];' снова. – ThW
Это ответ на мой вопрос :) Оказалось, что я сделал успешный вызов для моего PHP-файла, но с предлагаемым PHP для его удаления он фактически удалил его. Последний вопрос: почему вы используете функцию оценки() в бит foreach? Разве это уже не правильно с использованием «. ((Int) $ toDel)». или я недопонимаю оценку()? – Mortaza