Php 当我在删除一个产品后刷新页面时,XML列表中的另一个产品将被删除
当我单击某个产品的“删除”链接时,它会根据其关联id从我的Php 当我在删除一个产品后刷新页面时,XML列表中的另一个产品将被删除,php,xml,forms,Php,Xml,Forms,当我单击某个产品的“删除”链接时,它会根据其关联id从我的XML产品列表中删除该产品。但当我在删除一个产品后刷新页面时,它会删除另一个产品。你能帮我一下我做错了什么吗?为什么每次我刷新页面时都要删除产品 提前谢谢你的建议 这是我一直与之合作的公司: <?php $products = simplexml_load_file('data/product.xml'); if(isset($_GET['action'])){ $products = simplexml
XML
产品列表中删除该产品。但当我在删除一个产品后刷新页面时,它会删除另一个产品。你能帮我一下我做错了什么吗?为什么每次我刷新页面时都要删除产品
提前谢谢你的建议
这是我一直与之合作的公司:
<?php
$products = simplexml_load_file('data/product.xml');
if(isset($_GET['action'])){
$products = simplexml_load_file('data/product.xml');
$id = $_GET['id'];
$index = 0;
$i = 0;
foreach ($products->product as $product){
if($product['id']==$id){
$index = $i;
break;
}
$i++;
}
unset($products->product[$index]);
file_put_contents('data/product.xml', $products->asXML());
}
?>
<table cellpadding="2" cellspacing="2" broder="11">
<tr>
<th>Id</th>
<th>Name</th>
<th>Option</th>
</tr>
<?php foreach ($products->product as $product) { ?>
<tr>
<td><?php echo $product['id']; ?></td>
<td><?php echo $product->name; ?></td>
<td>
<a href="index.php?action=delete&id=<?php echo $product['id']; ?>"
onclick="return confirm('Are you sure?')">Delete</a>
</td>
</tr>
<?php } ?>
</table>
身份证件
名称
选项
XML文件格式为:
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product id="1">
<name>Product 1</name>
</product>
<product id="2">
<name>Product 2</name>
</product>
<product id="3">
<name>Product 3</name>
</product>
</products>
产品1
产品2
产品3
尝试以下代码
foreach ($products->product as $product){
if($product['id']==$id){
$index = $i;
break;
}
$i++;
}
unset($products->product[$index]);
to
$i = 0;
foreach ($products->product as $key=>$product){
if($product['id']==$id){
unset($products->product[$i]);
break;
}
$i++;
}
试试下面的代码
foreach ($products->product as $product){
if($product['id']==$id){
$index = $i;
break;
}
$i++;
}
unset($products->product[$index]);
to
$i = 0;
foreach ($products->product as $key=>$product){
if($product['id']==$id){
unset($products->product[$i]);
break;
}
$i++;
}
身份证件
名称
选项
身份证件
名称
选项
我想您需要指定要删除的项目,而不仅仅是操作,例如检查项目$\u GET['id'],不仅仅是$\u GET['action'],谢谢,但即使我将其从$\u GET['action']
更改为$\u GET['id']
,刷新后它仍会返回删除另一个项目的相同结果:(@LeoTahkupdate xml file format updated the xml@Kranthiu updated ans try with that think您需要指定删除的项目,而不仅仅是操作,例如检查项目$\u GET['id'],而不仅仅是$\u GET['action']谢谢,但即使我将其从$\u GET['action']
更改为$\u GET['id']
,刷新后会返回与删除另一项相同的结果。(@LeoTahkupdate xml file format updated the xml@kranthiuded ans尝试使用它谢谢回答,但删除功能现在无法使用此代码。它不会删除任何元素。哇!这很好。但这里唯一的问题是,如果两个产品(使用不同的名称)具有相同的id,刷新后会再次删除另一个。这是因为我们正在根据其id
删除子项吗?在这种情况下,除了为每个产品提供唯一的id之外,还有什么可能的解决方案?感谢您的努力。:)1.在删除id为的send product name和add-in if条件时。2.为产品添加一些其他唯一属性,如id。是否可以更新该场景的代码?这将非常有用。添加了一个ans检查itThanks以获取答案,但删除功能现在无法使用此代码。它不可用删除任何元素。哇!这很好。但这里唯一的问题是,如果两个产品(名称不同)如果具有相同的id,则在刷新后会再次删除另一个。这是因为我们正在根据子产品的id
删除子产品吗?在这种情况下,除了为每个产品提供唯一的id之外,还有什么可能的解决方案?感谢您的努力。:)1.在删除“同时发送产品名称”和“添加id为的if条件”时。2.为产品添加一些其他唯一属性,如id。能否请您更新该方案的代码?这将非常有用。再添加一个并检查它非常感谢。这是一个很好的教训。我非常感谢您的努力。:)非常感谢你。这是一个很好的教训。我真的很感谢你的努力