Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数据从HTML表单导出到XML文档_Php_Javascript_Html_Xml_Ajax - Fatal编程技术网

Php 将数据从HTML表单导出到XML文档

Php 将数据从HTML表单导出到XML文档,php,javascript,html,xml,ajax,Php,Javascript,Html,Xml,Ajax,好的,这就是我试图做的。我有一个用HTML编写的表单。不过它有一些HTML5元素。我希望发生的是,当用户填写所有必需字段(使用PHP和一些HTML5验证)并提交表单时,它将导出到现有的XML文件。表单还使用AJAX在用户填写字段时进行验证,并在不重新加载我的页面的情况下验证整个表单(一旦提交) XML文件只是一个空标记框架,用于接收表单提交中的信息,它建立在一个模式(我创建的)之上,将其限制为特定值或其他值。我还需要一个脚本来根据模式验证新的XML值,以确保所有值都有效,如果没有,则返回错误消息

好的,这就是我试图做的。我有一个用HTML编写的表单。不过它有一些HTML5元素。我希望发生的是,当用户填写所有必需字段(使用PHP和一些HTML5验证)并提交表单时,它将导出到现有的XML文件。表单还使用AJAX在用户填写字段时进行验证,并在不重新加载我的页面的情况下验证整个表单(一旦提交)

XML文件只是一个空标记框架,用于接收表单提交中的信息,它建立在一个模式(我创建的)之上,将其限制为特定值或其他值。我还需要一个脚本来根据模式验证新的XML值,以确保所有值都有效,如果没有,则返回错误消息

XML模式验证与PHP验证尽可能接近,在这里和那里添加了一些字符数量限制

如果您需要我发布XML文件的模式,以便给出更具体的答案,那么我会根据您的要求提供

XML框架:


****
HTML格式:


联系方式
你的名字*
你的姓*
电子邮件*
电话(可选)
网站(可选)
你的评论
主题*
支持
销售额
报告错误
其他
评论*

PHP包含一个专门用于构建、修改、导入和导出XML数据的类。如果您熟悉在Javascript中构造DOM元素,那么您的想法也是一样的。创建DOMDocument,然后创建每个元素,并在创建这些元素后将其附加到DOMDocument(或该元素的父元素)中。完成后,使用save函数将其写入文件。

验证后,使用PHP捕获表单字段,将其封装在XML元素中,然后保存

e、 g


...
..

双重验证也没有意义,一种验证与另一种验证略有不同。如果用户成功提交了数据,但却在没有警告的情况下在后端被拒绝,这将是一件很烦人的事情。DOMDocument也有点过分。

您不能有多个id相同的对象(“名字”和“姓氏”字段都有)。
    <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>
<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>
<form>
    <fname><?php=$_REQUEST['fname']?></fname>
    <lname><?php=$_REQUEST['lname']?></lname>
    ...
    ..
</form>