fancybox数据 - (不是表格) - 提交到mysql数据库

时间:2013-06-08 23:58:15

标签: php jquery fancybox-2

我有一个用户填写的表单,然后可以提交表单或预览数据。如果用户选择预览数据,我会将其组合成一个看起来更漂亮的页面(而不是仅仅再次显示该表单)。从这里他们可以按提交或返回表格。感谢@JFK和@jerdiggity在这个论坛上,我有一个很棒的预览。现在当我从预览iframe按提交时,我试图用一个名为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>

在preview.php文件的开头,我有以下内容:

    $(document).ready(function(){
       $('#saveData').live('click', function() {
          $.post('classes/sendMessage.class.php?\__construct');
    return false;
    });

__construct函数以:

开头
    if(!empty($_POST)) {
         foreach ($_POST as $field => $value)   
          .........

它继续验证字段,然后将它们提交给数据库。我知道这部分有效,因为当我提交表单(没有预览)时,数据被插入到db中。 当我按下提交时,我在Firebug中的错误是:

 TypeError: e[h] is not a function

我也尝试在sendMessageclass.php中添加以下行,以确保按下提交按钮,而不是预览按钮:

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

当我按下preview.php文件中的提交按钮时,如何让sendMessageclass.php被调用?

1 个答案:

答案 0 :(得分:0)

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

1)。替换html的name属性

<a class="submit btn login-submit" name="saveData" href="javascript:;">

通过id属性

<a class="submit btn login-submit" id="saveData" href="javascript:;">

...您无法使用选择器name

引用具有#saveData属性的元素

选中 JSFIDDLE ,您会看到点击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]元素