首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP生成的民意测验中使用ajax发布的问题

PHP生成的民意测验中使用ajax发布的问题
EN

Stack Overflow用户
提问于 2012-07-17 15:26:13
回答 2查看 174关注 0票数 1

我会努力让你走过这段非常慢的路。我正试图进行一项经常会发生变化的民意测验,所以我必须使它具有动态性。我还需要在不重新加载页面的情况下实现这一点,所以我需要使用Ajax提交表单。因此,我所做的就是创建一个PHP脚本,它将为我响应投票结果。这件事做得很好,我得到的民意测验就是我想要的。哦,是啊,忘了告诉我这是一次多阶段投票。我一次浏览2-4个问题,在JQM“页面”中隐藏/显示div。我的意思是:

代码语言:javascript
复制
<div data-role='page'>

在最后一页,我确实有一个提交按钮,而不是next按钮,因为投票显然没有显示"next“div。此提交按钮不工作、形状或表单,因此这里是问题

代码语言:javascript
复制
$("#submit").click(function() 
        {
            if ($("#form").validate()) 
            {
                $.ajax(
                {
                type:'POST',
                url:'add.php',
                data:$('#form').serialize(),
                success:function(response)
                {
                    $("#answers").html(response);
                }
            });
            } 
            else    
            {
                return false;
            }                   

        })

这应该是将我的表单数据发送到另一个名为add.php的PHP文件,然后将其发布到下面显示的div中。(这实际上是为了保存到数据库,但我试图回显它,直到我看到它的工作)。现在,令人费解的是,我在一种非动态形式上做了另一段相同的代码,它不是通过PHP创建的,而只是用HTML绘制的。这也是一个多步骤的民意调查,跨度超过3个div/‘页面’。而这完全没有问题提交。

因此,总结一下:我有两个不同的项目,每个项目处理了我一半的问题。一个动态生成表单,另一个保存我创建的静态表单。这两种表格都由各种复选框、无线电按钮和文本区域组成。问题是他们不会一起工作。当我单击submit按钮时,我希望表单会将答案回显到这个div中(您在这个div中读到了几行内容):

代码语言:javascript
复制
<div data-role="content" id="answers">
        Answers comes here: 
        </div>

尽管如此,这个部门仍然是一样的。我去掉了$(“#submit”).click(函数())来发出警报(‘test’);我仍然没有得到任何反应。我已经检查了变量名称、div名称和任何其他相关的名称,并对每个单独部分进行了各种小的调整(包括生成民意调查和使用ajax发布),以及我试图将它们组合起来但没有成功的尝试。所以,百万美元的问题是什么可能是错的?我剩下的最后一个假设是,在某种程度上,用于$("#submit").click的.click函数.在生成轮询的脚本之前加载。这将很有意义,当submit单击函数被声明时,它将不会链接到如下所示的任何按钮:

代码语言:javascript
复制
<input type="button" id="submit" name="Submit"/>

有没有人知道我如何使这个提交按钮工作,或者甚至知道为什么不工作?感谢所有读了这么多书的人,我希望你们能够并且愿意分享一些可以帮助我的知识。另外,由于Stack溢出的创建者实现了一个alt+z函数,因为我意外地单击了alt+a,然后在写之前的句子时随机选择了字母。祝您今天愉快!

编辑:下面是Kevin给出的提示后尝试这样做的,但是即使是第一个警报按钮也没有反应:

代码语言:javascript
复制
$("#submit").click(function() 
    {
        alert("it works");
        if ($("#form").validate()) 
        {
            $.ajax(
            {
            type:'POST',
            url:'add.php',
            data:$('#form').serialize(),
            success:function(response)
            {
                $("#answers").html(response);
                return false;
            }
        });
        } 
        else    
        {
            return false;
        }                   

    })
    });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 08:32:43

您需要返回false;在$(“#答案”).html(响应)下;在成功函数的范围内。如果这有用的话请告诉我。祝你好运凯文

票数 0
EN

Stack Overflow用户

发布于 2012-08-07 16:05:04

我只是试了上面的脚本,没有帖子,它工作得很好。在执行此脚本之前是否加载了jquery,和/或控制台中是否存在或存在任何javascript错误?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11525767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档