【问题标题】:Php Update xml node with html table valuephp 使用 html 表值更新 xml 节点
【发布时间】:2014-08-28 05:28:57
【问题描述】:

我正在用 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 很陌生,整天浏览这个更新,但找不到答案。帮助我实现这一目标。

【问题讨论】:

    标签: php xml


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。我编辑了我的问题。就像上面提到的链接一样,我想用 html 条目更新我的 xml 文件。
    【解决方案2】:

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

    <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 的图像。

    希望这可以帮助某人:)

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多