Php使用html表值更新xml节点


Php Update xml node with html table value

我正在php中创建一个简单的页面,并通过xml呈现填充数据。我是php的新手。我的xml文件是

data.xml
<painting>
<text1>Welcome</text1>
<text1>Test</text1>
<text1>Look here</text1>
<img_view1>img/myimg1.png</img_view1>
<img_view2>img/myimg2.png</img_view2>
</painting>

我有一个包含图像和文本的html表。我的桌子是

index.php
<table >
<tr>
  <td>Name</td>
  <td>Image</td> 
  <td>Type</td>
</tr>
<tr>
  <td>Sports</td>
  <td>img/sports.png</td> 
  <td><input type="submit" value="Btn" name = "submit" > </td>
</tr>
<tr>
  <td>Tv</td>
  <td>img/tv.png</td> 
  <td><input type="submit" value="Btn" name = "submit" ></td>
</tr>
</table>

我的要求是,当我按下第1行按钮时,特定行中的图像需要在xml文件的img_view1字段中进行更新。所有其他值都需要保持不变。当我按下第2个按钮时,行图像需要在xml文件中更新。

我发现点击按钮更新xml文件,效果很好。在这里,而不是在文本框中手动输入,我想从点击按钮的表中更新xml文件

我是php的新手,为了这个更新我浏览了一整天,但找不到答案。帮助我实现这一点。

您所询问的内容与PHP无关。如果你想在点击按钮时更改图像(或者在你的情况下只更改表单元格中的路径),你必须在客户端进行更改,所以JavaScript将是解决方案。

假设您使用的是jQuery,可以重写以下内容来解决您的问题:

var img = "";

function parseXml(xml)
{
  img = $(xml).find("painting").find("img_view1").;
}
/* wait until site has loaded */
$(document).ready( function () {
    $("#id-of-your-button").click( function () {
        $.ajax({
            type: "POST",
            data: {'img_src1': $("#id-of-cell").text()}
            url: "index.php",
            dataType: "xml",
            success: parseXml  
        });
    }
});

现在,您可以获得$_POST['img_src1']的值,并将其插入到xml文件中(就像链接的帖子一样)。

有关更多信息,请访问jquery.com

我终于找到了答案,而且很简单。在提交按钮上添加

<input type="submit" value="img_id" name = "image1"  ></td>

在php上添加类似的内容

 <?php
 $xml = new DOMDocument('1.0', 'utf-8');
 $xml->formatOutput = true; 
 $xml->preserveWhiteSpace = false;
$xml->load('login_data.xml');
$element = $xml->getElementsByTagName('painting')->item(0);
    $imgs = $element->getElementsByTagName('img_view1')->item(0);
 ?>
<?php
if ( isset( $_POST['image1'] ) ) 
{  
    $imgs->nodeValue = $_POST['bagrnd_img'];    
    htmlentities($xml->save('login_data.xml')); 
}
?>

在表单submit上调用这个php页面。这将在单击按钮时更改xml的图像。

希望这能帮助到某人:)