当前位置: 首页 > 面试题库 >

使用PHP将表单数据保存到现有XML文件中

华阳秋
2023-03-14
问题内容

好的,这就是我想要做的(注意:我对PHP还是陌生的):

我有一个电影/电视剧等的注册表格。然后将填写的表格中的数据注册(register.php)并发送到MySQL数据库,该数据库工作正常。但是,这里出现了:我还希望在同一个寄存器文件(register.php)中将数据存储在现有XML文件(data.xml)中。这里重要的是,每个成功提交的表单都存储在相同的XML文件(data.xml)中。

我通过while循环将所有已注册的“电影”显示在HTML表中,该循环现在从数据库中收集数据。我也恳求在表外的某个地方添加一个按钮,以在新选项卡(?)中生成/显示XML文件的内容。不右键单击以查看源,因为表数据是从MySQL收集的,所以这是不可能的。

到目前为止,这是我所拥有的(这可以将每个提交保存在data.xml中,但是如果进行了另一个提交则将其替换-我想添加“不替换”):

首先,index.php:

<form enctype="multipart/form-data" action="core/register.php" method="post" autocomplete="true">
    <p><input type="text" name="name" placeholder="Program name" /></p>
    <p><input type="date" name="date" placeholder="Program date" /></p>
    <p><input type="time" name="time" placeholder="Program time" /></p>
    <p><input type="text" name="bline" placeholder="B-line" /></textarea></p>
    <p><textarea name="synopsis" placeholder="Program synopsis" /></textarea></p>
    <p><textarea name="leadtext" placeholder="Lead text" /></textarea></p>
    <p><input type="url" name="url" placeholder="URL" /></p>
    <p><input type="submit" value="Register" name="register" /></p>
</form>

接下来,data.xml:

<?xml version="1.0" encoding="UTF-8"?>
<programs>
    <program>
        <name></name>
        <date></date>
        <start_time></start_time>
        <b-line></b-line>
        <synopsis></synopsis>
        <leadtext></leadtext>
        <url></url>
    </program>
</programs>

最后,register.php:

require_once('db.php');

$str = '<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="xsl.xsl"?><programs></programs>';
$xml = simplexml_load_string($str);

$name = $_POST['name'];
$date = $_POST['date'];
$time = $_POST['time'];
$bline = $_POST['bline'];
$synopsis = $_POST['synopsis'];
$leadtext = $_POST['leadtext'];
$url = $_POST['url'];

$name = htmlentities($name, ENT_COMPAT, 'UTF-8', false);
$date = htmlentities($date, ENT_COMPAT, 'UTF-8', false);
$time = htmlentities($time, ENT_COMPAT, 'UTF-8', false);
$bline = htmlentities($bline, ENT_COMPAT, 'UTF-8', false);
$synopsis = htmlentities($synopsis, ENT_COMPAT, 'UTF-8', false);
$leadtext = htmlentities($leadtext, ENT_COMPAT, 'UTF-8', false);
$url = htmlentities($url, ENT_COMPAT, 'UTF-8', false);

$xml->program->addChild('name', $name);
$xml->program->addChild('date', $date);
$xml->program->addChild('start_time', $time);
$xml->program->addChild('b-line', $bline);
$xml->program->addChild('synopsis', $synopsis);
$xml->program->addChild('leadtext', $leadtext);
$xml->program->addChild('url', $url);

$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save('data.xml');

我搜索了几个小时,却没有找到我想要的东西。还尽我所能尝试很多我自己的“非工作解决方案”。另外,我还选择了与该问题答案相关的代码部分。


问题答案:

您需要通过为program节点分配值来使其成为 永久 节点,如下所示:

$xml->program = "";

在添加子节点之前添加该行:

$xml->program = "";
$xml->program->addChild('name', $name);
$xml->program->addChild('date', $date);
....


 类似资料:
  • 问题内容: 如何将表单数据保存在文件或本地db(也许使用AJAX)中,该文件或数据通过表单操作将数据发送到外部db? 我的表单的源代码在这里:http : //jsbin.com/ojUjEKa/1/edit 我应该对代码进行哪些更改(如果有)? 对。因此,我能够使用AJAX将数据存储到localStorage中,并希望将存储的数据发送到名为backend.php的文件中。这是我的html文件:

  • 这比我找到的或者我自己能想到的其他答案要具体一点。 我的json文件完全包含 不多也不少。使用这种格式的json数据,我可以得到所需的确切结果。 我想做的是能够使用PHP向json文件追加更多内容。我见过: 我的问题是,我不明白如何在我的示例中使用这个示例,因为我的json数据没有为其单个数组使用键。我是否必须放弃并找到一种使用命名键来获得我想要的结果的方法,或者有没有一种方法可以让我的json数

  • 问题内容: 我正在尝试开发简单的Python(3.2)代码以读取XML文件,进行一些 更正 并将其存储回去。但是,在存储步骤中,ElementTree添加此命名空间命名法。例如: 该代码段如下: 我尝试使用,但没有任何积极结果。此版本的ElementTree 1.3是否有任何特定更改? 问题答案: 为了避免使用前缀,应 在 读取XML数据 之前 设置默认名称空间。

  • 我刚刚开始学习SpringMVC。我试图将一些数据从Thymeleaf表单保存到存储库,这扩展了CrudRepository。不幸的是,数据没有显示。 当我进入结果页面时,我看到使用的ID,但没有键入要形成的数据。哪里出了错? 这是控制器 `型号: 存储库: 表格摘录: 并从结果模板中提取:

  • XML 服务 实体 存储库 我有一个错误: 创建在类路径资源[org/springframework/boot/autoconfigure/orm/jpa/hibernatejbaconfiguration.class]中定义的名为“entityManagerFactory”的bean时出错:初始化方法调用失败;嵌套的异常是javax。坚持不懈PersistenceException:[Persi

  • 问题内容: 我看到过很多不同的文章,涉及到您应该以何种方式将对象序列化到文件,并且所有这些在本质上在执行方式和最佳实践方面存在冲突。因此,这就是我要保存的内容: 我们可以假设configArgs的大小已知,我需要制作一个文件,这就是到目前为止的内容。 问题答案: 好吧,我想,您想将对象直接写入文件 我只是提供了重要的代码。通过异常处理来实现。