我正在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的图像。
希望这能帮助到某人:)