我有一个网站AMP项目,我想使用PHP编写表单。
在具有post方法的网页表单上,后端代码中没有任何操作。 因此,我认为数据没有传输。
编辑答案:
我的表单代码是:
<form method="POST" class="sit-form" action-xhr="ampsend.php" data-form-title="contactForm">
<div class="sit-row">
<div submit-success="" class="sit-col-lg-12 sit-col-md-12 sit-col-sm-12">
<template data-form-alert="" type="amp-mustache">success!
</template>
</div>
<div submit-error="" class="sit-col-lg-12 sit-col-md-12 sit-col-sm-12">
<template data-form-alert="" type="amp-mustache">failed! {{error}}</template>
</div>
</div>
<div class="dragArea sit-row">
<div class="sit-col-md-12 field sit-col-sm-12">
<input type="hidden" name="firstnameHidden" value="Firstname"
id="firstnameHidden"
data-form-field="">
<input type="text" name="firstname" placeholder="Firstname" data-form-field="Name"
required="required" class="field-input display-4" value=""
id="firstname">
</div>
<div class="sit-col-md-12 field sit-col-sm-12">
<input type="hidden" name="lastnameHidden" value="Lastname"
id="lastnameHidden"
data-form-field="">
<input type="text" name="lastname" placeholder="Lastname" data-form-field="Name"
class="field-input display-4" required="required" value=""
id="lastname">
</div>
<div class="sit-col-md-12 field sit-col-sm-12">
<input type="hidden" name="emailHidden" value="Email" id="emailHidden"
data-form-field="">
<input type="email" name="email" placeholder="Email" data-form-field="Email"
required="required" class="field-input display-4" value=""
id="email">
</div>
<div class="sit-col-md-12 sit-col-sm-12 field">
<input type="hidden" name="messageHidden" value="Message"
id="messageHidden"
data-form-field="">
<textarea name="message" placeholder="Message" data-form-field="Message"
class="field-input display-4" required="required" value=""
id="message"></textarea>
</div>
<div data-for=""
class="sit-col-md-12 sit-section-btn sit-pt-4 align-center sit-col-sm-12 field">
<button type="submit" class="btn btn-primary display-4">
send
</button>
</div>
</div>
</form>
通过单击提交,POST的file_put_contents是:
a:8:{
s:15:"firstnameHidden";
s:9:"Firstname";
s:9:"firstname";
s:8:"TestName";
s:14:"lastnameHidden";
s:8:"Lastname";
s:8:"lastname";
s:12:"TestLastname";
s:11:"emailHidden";
s:5:"Email";
s:5:"email";
s:13:"test@test.com";
s:13:"messageHidden";
s:7:"Message";
s:7:"message";
s:11:"testMessage";}
那么它能正常工作吗?因为作为回报,我得到了“失败!” -来自AMP模板的消息。
答案 0 :(得分:0)
我认为您无法在显示文档上执行PHP代码。 PHP正在提供数据,以通过this post中所述的POST
在显示的Web文档上显示。
答案 1 :(得分:0)
我的解决方案(检查PHP是否正在运行,并检查通过表单发布的数据)是将所有内容都写入文本文件。
$serializedData = serialize($_POST);
file_put_contents('your_file_name.txt', $serializedData);
打开文件,查看传递了哪些数据。如果要在提交表单后显示消息,并传递一些日期,例如姓名或电子邮件。您需要使用amp-mustache。然后返回JSON形式的PHP,以将其传递回您的AMP页面。
例如,在您的PHP文件中: header('Content-Type:application / json'); 回声json_encode(array('name'=> $ _POST ['name]'));
当然不要忘记在PHP或.htaccess文件中放置适当的CORS标头。