我在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,并浏览了一整天的更新但无法找到答案。帮助我实现这一目标。
答案 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图像。
希望这可以帮助某人:)