【问题标题】:fancybox data - (not form) - submit to mysql databasefancybox data - (not form) - 提交到 mysql 数据库
【发布时间】:2013-06-08 23:58:14
【问题描述】:

我有一个用户填写的表单,然后可以提交表单或预览数据。如果用户选择预览数据,我会将其组合成一个更好看的页面(而不是仅仅再次显示表单)。从这里他们可以按提交或返回表单。感谢这个论坛上的@JFK 和@jerdiggity,我有一个很棒的预览。现在,当我从预览 iframe 中按下提交时,我正在尝试使用名为 sendMessageclass.php 的文件调用一个函数。在我的预览窗格中,最后有这 2 个按钮:

    <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)   
          .........

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

 TypeError: e[h] is not a function

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

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

当我按下 preview.php 文件中的提交按钮时,有什么想法可以让我调用 sendMessageclass.php 吗?

【问题讨论】:

    标签: php jquery fancybox-2


    【解决方案1】:

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

    1)。替换 html 的 name 属性

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

    通过id 属性,如

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

    ...您不能使用选择器#saveData 引用具有name 属性的元素

    检查此JSFIDDLE,您将看到单击带有name="nameData" 的链接不会返回任何内容。

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

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

    ...到

    $("body").on("click", "a[name=saveData]", function(){ ... })
    

    ... 不更改 html 并保留 name 属性。

    注意 .live() 已被弃用,因此我们在其委托形式中使用 .on()(尽管需要 jQuery 1.7+)

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

    【讨论】:

    • 我尝试了这两个选项,但都没有奏效。我仍然收到错误:code TypeError: e[h] is not a function code 它正在注册“点击”,因为我将它记录到控制台。
    • 进一步审查,结果我需要在fancybox中再次加载jquery。但是,我仍然无法将数据提交给数据库;我按下提交,我返回到父页面,但没有数据发送到数据库。预览效果很好,并且数据显示。除了抓取 POST 数据并回显它以显示数据外,我在预览文件中没有任何内容。这是form.php的相关部分:
    • $('.preview').on("click", function (e) { ........ afterShow: function(){ $(".submit, .closeFB").on("click", function(event){ if( $(event.target).is(".submit") ){ alert("submit"); // works, I get the alert $("#message_form").submit(); // submit the actual form } $.fancybox.close(); //close fancybox }); // on click .... 关闭所有括号
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2017-09-20
    • 2023-03-15
    相关资源
    最近更新 更多