Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 fancybox数据-(非表单)-提交到mysql数据库_Php_Jquery_Fancybox 2 - Fatal编程技术网

Php fancybox数据-(非表单)-提交到mysql数据库

Php fancybox数据-(非表单)-提交到mysql数据库,php,jquery,fancybox-2,Php,Jquery,Fancybox 2,我有一个用户填写的表单,然后可以提交表单或预览数据。如果用户选择预览数据,我会将其组装成一个外观更好的页面(而不仅仅是再次显示表单)。从这里,他们可以按submit或返回表单。多亏了这个论坛上的@JFK和@Jerdigit,我有了一个非常好看的预览。现在,当我在预览iframe中按submit时,我正试图用一个名为sendMessageclass.php的文件调用一个函数。在预览窗格的末尾,我有以下两个按钮: <a class="submit btn login-submit" n

我有一个用户填写的表单,然后可以提交表单或预览数据。如果用户选择预览数据,我会将其组装成一个外观更好的页面(而不仅仅是再次显示表单)。从这里,他们可以按submit或返回表单。多亏了这个论坛上的@JFK和@Jerdigit,我有了一个非常好看的预览。现在,当我在预览iframe中按submit时,我正试图用一个名为sendMessageclass.php的文件调用一个函数。在预览窗格的末尾,我有以下两个按钮:

    <a class="submit btn login-submit" name="saveData" href="javascript:;">Submit</a>
    <a class="closeFB btn login-submit" href="javascript:;">Back to Edit</a>
_u_构造函数的开头是:

    if(!empty($_POST)) {
         foreach ($_POST as $field => $value)   
          .........
它继续验证字段,然后将其提交给db。我知道这部分是有效的,因为当我提交表单时(不进行预览),数据会插入数据库。 当我按下submit时,我在Firebug中的错误是:

 TypeError: e[h] is not a function
我还尝试在sendMessageclass.php中添加以下行,以确保按下的是提交按钮,而不是预览按钮:

if (isset($_POST['submit'])) {

当我在preview.php文件中按下submit按钮时,有没有办法让sendMessageclass.php被调用

我想您可以尝试以下任一选项:

1) 。替换html的
name
属性

<a class="submit btn login-submit" name="saveData" href="javascript:;">
。。。不能使用选择器
#saveData
引用具有
名称
属性的元素

选中此,您将看到单击带有
name=“nameData”
的链接不会返回任何内容

2) 。替换当前的脚本选择器和格式

$('#saveData').live("click", function(){ ... })
。。。到

$("body").on("click", "a[name=saveData]", function(){ ... })
。。。无需更改html并保留
name
属性

注意不推荐使用
.live()
,因此我们以委托形式使用
.on()
(但需要jQuery 1.7+)


还请注意,您可以通过父容器的选择器更改
body
元素
a[name=saveData]

我尝试了这两个选项,但都不起作用。我仍然得到错误:
code
TypeError:e[h]不是一个函数
code
它在我将其记录到控制台时正在注册“click”。进一步检查后,我发现我需要在fancybox中再次加载jquery。但是,我仍然无法获得提交给db的数据;我按submit,返回到父页面,但没有数据发送到db。预览效果很好,数据也显示出来了。我在预览文件中没有任何内容,除了抓取POST数据并回显它以显示数据。这是表单的相关部分。php:
$('.preview')。在(“单击”,函数(e){…….afterShow:function(){$(“.submit.closeFB”)。在(“单击”,函数(event){if($(event.target).is(“.submit”){.alert(“submit”)//工作时,我得到了警报$(“#消息(表单”).submit();//提交实际表单}$.fancybox.close();//close fancybox});//单击
…关闭所有参数
$('#saveData').live("click", function(){ ... })
$("body").on("click", "a[name=saveData]", function(){ ... })