Php使用html表值更新xml节点

时间:2014-08-28 05:28:57

标签: php xml

我在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 字段中进行更新。所有其他值都需要保持不变。当我按下第二个按钮时,需要在xml文件中更新行图像。

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

上更新表格中的xml文件

我是非常新的PHP,并浏览了一整天的更新但无法找到答案。帮助我实现这一目标。

2 个答案:

答案 0 :(得分:0)

你所问的与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

答案 1 :(得分:0)

最后我找到了答案并且非常简单。  在提交按钮添加

<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')); 
}

?>

在表单提交上调用此php页面。这将在按钮点击时更改我们的xml图像。

希望这可以帮助某人:)