表单数据未出现在php文件中
所以我不能完全理解发生了什么。我正在使用启动电子邮件提交过程。此过程收集信息(姓名、电子邮件等),然后通过“post”表单发送这些值。然后,这个php文件(mail.php)接受这些值并使用它们填充适当的字段以发送邮件消息。看起来很直截了当 消息发送,但是我从电子邮件提交表单中检索的数据似乎不存在。当我从fancybox中取出表单并在页面上清楚地显示它时,它会将值很好地发送到php文件,所以很明显这与fancybox有关 我不完全理解fancybox(没有查看源代码),也没有在搜索类似问题时获得积极的结果(也许我只是使用了不正确的搜索词) 无论如何,如果有人能在这里指导我的仪式方向,因为这是一件令人沮丧的事情 供参考: HTML-表单数据未出现在php文件中,php,jquery,html,fancybox,Php,Jquery,Html,Fancybox,所以我不能完全理解发生了什么。我正在使用启动电子邮件提交过程。此过程收集信息(姓名、电子邮件等),然后通过“post”表单发送这些值。然后,这个php文件(mail.php)接受这些值并使用它们填充适当的字段以发送邮件消息。看起来很直截了当 消息发送,但是我从电子邮件提交表单中检索的数据似乎不存在。当我从fancybox中取出表单并在页面上清楚地显示它时,它会将值很好地发送到php文件,所以很明显这与fancybox有关 我不完全理解fancybox(没有查看源代码),也没有在搜索类似问题时获得
<form id="default-behavior" action="mail.php" method="post">
js-
编辑
使用jquery post方法进行了尝试,但仍然有相同的结果(咳嗽,没有结果):
为了进一步确认这与fancybox直接相关,我尝试了带有显式参数的jquery post,它正确地发送了数据,即:
$("#btnSubmit").click(function () {
$.post("mail.php", { email: "email@email.com", story: "blah blah test story" });
//$('#default-behavior').submit();
});
好了,问题解决了
通过使用jquery$.post()方法,我能够将表单值发送到php文件
像这样:
$("#btnSubmit").click(function () {
var ml = $("#email").val();
var stry = $("#story").val();
$.post("mail.php", { email: ml, story: stry });
});
这符合我的需要,因此有效地解决了这个问题。不过我还有几个问题。起初我认为fancybox可能正在重新创建表单元素,并将“克隆”元素放在fancybox中,因此当尝试访问原始元素时,它只会显示“”而不是输入的值。但是,通过显式地将元素分配给js变量,然后通过post将这些变量发送到.php文件(这显然是可行的),这让我有了不同的想法(除非在这个过程中我遗漏了什么)。所以我很想解决这个问题,找出为什么在调用$(“element”).serialize()时它会传递空值
对于这个应用程序,这是一个相当不重要的因素-显式赋值是次要的,因为值太少了。然而,当向服务器端传递大量值时,这显然是一个巨大的问题,因此,解决这个完全相关但独立的问题确实是件好事
tl;dr-该死的fancybox。看起来您没有使用jQuery
submit函数发送任何值。为什么你首先需要一个JS来控制这个简单的提交?我的问题就是。。。输入按钮的重新映射是怎么回事?删除该选项,然后使用已处于“默认”状态的直接提交按钮。请参阅该页上的第5页。我将此用作解决方法,因为提交按钮一开始根本不起作用。fancybox的另一个结果。我怀疑解决这个问题也会解决这个问题,但更重要的是,我需要弄清楚——这是在我做这件事之前发生的,就像在中一样——我在fancybox外放置了一个提交按钮,数据仍然没有显示在php文件中。@Dan——我尝试了这个,在我尝试jquery提交按钮解决方法之前。我现在将尝试这个仪式…我仍然很好奇为什么数据嵌套在fancybox包装中时无法发送。。。
$(document).ready(function() {
$("#story").text("");
$("a#inline").fancybox({
'hideOnContentClick': true,
'showCloseButton' : true,
'autoDimensions': true
});
$("#submitClick").fancybox({
'hideOnContentClick': true,
'showCloseButton' : true,
'autoDimensions': true
});
$("#btnSubmit").click(function () {
$('#default-behavior').submit();
});
});
$("#btnSubmit").click(function () {
$.post("mail.php", $("#default-behavior").serialize());
//$('#default-behavior').submit();
});
$("#btnSubmit").click(function () {
$.post("mail.php", { email: "email@email.com", story: "blah blah test story" });
//$('#default-behavior').submit();
});
$("#btnSubmit").click(function () {
var ml = $("#email").val();
var stry = $("#story").val();
$.post("mail.php", { email: ml, story: stry });
});