gpt4 book ai didi

javascript - 将我的内容更新为 XML 文件

转载 作者:行者123 更新时间:2023-12-01 05:44:36 25 4
gpt4 key购买 nike

我很感激地设法将 XML 文件的内容加载到我的 php 文档中,如下所示:

$(document).ready(function () { 
$.ajax({
type: "GET",
url: "abstimmer.xml",
dataType: "xml",
success: function (xml) {
var $lis = $(".abstimmer li");
$(xml).find('klick').each(function (index) {
if (index < $lis.length) {
$lis.eq(index).html($(this).text());
}
});
}
})
})

这样,这些节点的内容就会被推送到可通过类“abstimmer”识别的父 ul 元素的 li 元素中。

我现在还想将 php 文件中的数据推回到 xml 文件中。我想通过计算 li 元素的点击次数来做到这一点,我以这种方式做什么:

$(".abstimmer li").click(function(){
this.clicked=this.clicked?this.clicked+1:1;
$(this).html(this.clicked)
var klick_neu = $(this).html(this.clicked);
// Where would I need to go from here?
});

我知道,我现在需要将 var klick_neu 发送到一个 php 文件,该文件以某种方式解析 var klick_neu 并将其推送到该 xml 文件中。但我不知道该怎么做。有人可以帮我吗?

我不确定,这是否符合 stackoverflows 的规则,但我只是对同一问题中的另一件事感到好奇:如果我只是在就绪函数中添加一个 onClick-Event,我可以“无缝”将 xml 文件的更新内容加载到我的列表中 - 对吗?

非常感谢。

我的 XML 文件或多或少看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<abstimmer>
<seite id="2">
<klick>3</klick>
<klick>5</klick>
<klick>9</klick>
<klick>12</klick>
<klick>1</klick>
<klick>0</klick>
</seite>

最佳答案

这是我写的一个方法。你需要熟练掌握它。我真的不知道你的xml文档的标记。我从您提交的代码中推断出来。这是做什么的。每当有人点击 LI 时,就会向服务器发出 AJAX 调用。在那里,xml 被更新并发布回响应中。页面中的 HTML 会使用新数据进行更新。此方法的一个缺点是它一次仅支持一个操作。如果两个人写入同一个文件,就会导致数据丢失。更好的解决方案是使用数据库来跟踪这一点。

$(".abstimmer li").click(function(){
var klick_neu = parseInt($(this).html())+1;
var index = Array.prototype.slice.call($(".abstimmer li")).indexOf(this);

//create an ajax call that posts the new click count to the server.
$.ajax({
type: "POST",
url: "abstimmer.php",
dataType : "xml",
data : {clicks : klick_neu, element : index},
success: function (data) {
var $lis = $(".abstimmer li");
$(data).find('klick').each(function (index) {
if (index < $lis.length) {
$lis.eq(index).html($(this).text());
}
});
}
})
});

新的abstimmer.php文件

<?php
$clicks = $_POST['clicks'];
$index = $_POST['element'];
$doc = new DOMDocument();
$doc->load("abstimmer.xml");

$elements = $doc->getElementsByTagName("klick");
$elements->item($index)->nodeValue = $clicks;

$xml = $doc->saveXML();

if($handle = fopen("abstimmer.xml", "w"))
{
if (!fwrite($handle, $xml))
{
fclose($handle);
}
fclose($handle);
}

header('Content-Type: text/xml; charset=utf-8');
echo $xml;

?>

关于javascript - 将我的内容更新为 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28031717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com