将数据从HTML表单导出到XML文档中
Exporting data from an HTML form into an XML document
好吧,这就是我要做的。我有一个用HTML编写的表单。不过,它有一些HTML5元素。我想做的是,当用户填写所有必需的字段(用PHP和一些HTML5验证)并提交表单时,它将导出到现有的XML文件中。表单还使用AJAX在用户填写字段时进行验证,并在不重新加载页面的情况下对整个表单进行验证(提交后)。
XML文件只是一个空标记的框架,用来接收表单提交的信息,它建立在一个模式(我制作的)之上,将其限制为某些值或其他值。我还需要有一个脚本来根据模式验证新的XML值,以确保所有值都是有效的,如果不是,则返回错误消息。
XMLSchema验证尽可能接近PHP验证,并在此处和那里添加了一些字符数量限制。
如果您需要我发布XML文件的模式以便给出更具体的答案,那么我会根据请求发布。
XML框架:
<form>
**<!-- First Name -->**
<fname></fname>
<!-- Last Name -->
<lname></lname>
<!-- Phone Number -->
<phone></phone>
<!-- Email -->
<email></email>
<!-- Website -->
<website></website>
<!-- Subject -->
<subject></subject>
<!-- Message -->
<message></message>
</form>
HTML表单:
<form method="post" action="php/validator.php" name="contactform" id="contactform" autocomplete="on">
<fieldset>
<legend>Contact Details</legend>
<div>
<label for="fname" accesskey="F">Your First Name*</label>
<input name="fname" type="text" id="name" placeholder="Enter your first name" tabindex="1" required />
</div>
<div>
<label for="lname" accesskey="L">Your Last Name*</label>
<input name="lname" type="text" id="name" placeholder="Enter your last name" tabindex="2" required />
</div>
<div>
<label for="email" accesskey="E">Email*</label>
<input name="email" type="email" id="email" placeholder="myEmail@example.com" pattern="^[A-Za-z0-9](([_'.'-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)((['.'-]?[a-zA-Z0-9]+)*)'.([A-Za-z]{2,})$" tabindex="3" required />
</div>
<div>
<label for="phone" accesskey="P">Phone <small>(optional)</small></label>
<input name="phone" type="tel" id="phone" size="12" placeholder="555-555-5555" tabindex="4" />
</div>
<div>
<label for="website" accesskey="W">Website <small>(optional)</small></label>
<input name="website" type="url" id="website" placeholder="www.yourWebDomain.com" tabindex="5" />
</div>
</fieldset>
<fieldset>
<legend>Your Comments</legend>
<div>
<label for="subject" accesskey="S">Subject*</label>
<select name="subject" id="subject" tabindex="6" required="required">
<option value=""></option>
<option value="Support">Support</option>
<option value="Sale">Sales</option>
<option value="Bug">Report a bug</option>
<option value="Other">Other</option>
</select>
</div>
<div>
<label for="comments" accesskey="C">Comments*</label>
<textarea name="comments" cols="40" rows="3" id="comments" class="comments" placeholder="Enter your comments" spellcheck="true" required tabindex="7"></textarea>
</div>
</fieldset>
<input type="submit" class="submit" id="submit" value="Submit" tabindex="9" />
</form>
验证后,使用PHP捕获表单字段,将它们封装在XML元素中,然后保存。
例如
<form>
<fname><?php=$_REQUEST['fname']?></fname>
<lname><?php=$_REQUEST['lname']?></lname>
...
..
</form>
双重验证也没有意义,其中一个与另一个略有不同。如果用户成功提交数据,但不知何故在后台被拒绝而没有任何警告,那将是令人讨厌的。DOMDocument也有点过头了。
PHP包含一个名为DOMDocument的类,专门用于构建、更改、导入和导出XML数据。如果您熟悉在Javascript中构造DOM元素,那也是同样的想法。创建您的DOMDocument,然后创建每个元素,并在创建这些元素后将它们附加到DOMDocument(或该元素的父元素)。完成后,使用save函数将其写入文件。
相关文章:
- 如何将childNodes用于XML文档
- 加载的XML文档为null(Javascript)
- 如何将 :empty 选择器应用于 XML 文档
- 无法使用JavaScript在网页上加载XML文档
- 在 javascript 中创建 xml 文档显示错误
- 是否可以检测IE何时忽略xml文档中的空白文本节点
- 在分析 XML 文档后循环访问关联数组
- jQuery 重新加载 xml 文档需要关闭浏览器
- 在jQuery的XML文档中选择和操作DOM中的元素
- 转义 XML 文档中的特殊字符
- 使用jQuery解析XML文档,有没有有效的方法
- 可以't使用getElementsByTagName从Javascript中的XML文档中检索节点
- 在javascript中检索XML文档的所有值
- 如何用Javascript克隆XML文档
- 如何使用Node.js解析HTML/XML文档
- 使用XML文档中的内容更新链接文本
- clonoNode()Dom方法无法克隆给定的Xml文档对象
- 用于解析xml文档的Javascript代码
- 在服务器端编辑XML文档
- javascript来搜索XML文档中的属性