2012-07-06 61 views
0

我目前的工作没有使用jQuery Mobile的6页表格,并且处理我的表格的结果有一些问题。我想要做的是将所有数据发送到.php脚本,以便.php脚本可以打印和/或保存到我的数据库。如何通过使用Ajax在jQuery Mobile中调用PHP函数来处理表单数据?

我经常遇到不断变化的名字的问题,因为它们看起来像是一种操纵的痛苦。也许有人知道更好的方法来做到这一点,因为我对jQuery和Ajax来说很新颖。我试图解释我的思维过程如何在下面。

有没有人做过类似的事情,可以让我知道正确的方向?我在这里很黑暗,因为google是什么。也许是一些相关的链接?我会发布任何代码,如果我有一些,但我还没有真的发现任何有用的尝试。我的表单是通过.php函数生成的,但保存结果与此相反。

需求:
- 没有页面重载
- 有保存到数据库
前使用mysql_real_escape_string的可能性 - 提交方法:POST
- 目标数据库表需要question_id,option_id,USER_ID,日期等(为可能的意见)

HTML伪代码(由.PHP产生) - 不带跨度/字段集/标签等

 <form action="<!-- What to put here?-->" method="POST" id="questions"> 
    <input type="radio" name="1[]" value="1"/> 
    <input type="radio" name="1[]" value="2"/> 
    <input type="radio" name="1[]" value="3"/> 

    <input type="checkbox" name="2[]" value="1"/> 
    <input type="checkbox" name="2[]" value="2"/> 
    <input type="checkbox" name="2[]" value="3"/> 
    <input type="checkbox" name="2[]" value="4"/> 
    <textarea name="2[]" placeholder="Type here..."></textarea> 
    <!-- ... --> 
    <a type="submit" href="#results" onclick="formSubmit()" data-role="button">Submit</a> 
    </form> 

的JavaScript代码:

 function formSubmit() 
    { 
    document.getElementById("questions").submit(); 
    } 
以.php

希望的输出:
$答案=( “questionid”=> “answerid”, “questionid”=> “answerid”,“questionid => “answertext”)为所有检查复选框/单选按钮和文本框!=“”。

编辑:
我发现我可能需要一个ID为我的形式,因此应在此被命名为问题
执行此操作的最佳方法可能是通过在提交按钮上调用.php脚本onclick

回答

1

这听起来像你需要帮助做一个简单的AJAX提交,但也许有一个在这里一些隐藏的问题,我已经错过了,但无论如何,我会回答。

所以,你想要的是看这个教程这里http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

您可以设置您的网址AJAX提交给处理PHP脚本,然后会做你想要的数据是什么,并返回一个状态,成功/失败等等。

希望有所帮助。

+0

**“您可能会注意到我已经包含了一个id为contact_form的div来包装整个表单,请务必不要以您自己的形式丢失该div,因为我们稍后需要这个wrapper div。”** 这会有问题,因为我有一个6页的表格,div的来来去去,但我的表单一直持续到最后一页。我尝试在另一个div中包装整个页面,但是这阻止了我的导航工作,因为我需要href =“#page1”等来浏览网站。任何可能的解决方案?感谢您的答案,但它仍然有帮助! – Tom 2012-07-06 10:45:09

+0

为什么不按照自己的形式提交每个页面,并在每个步骤中将数据存储在$ _SESSION中。这样你也可以运行服务器端验证。您将在每个表单上获得不同的AJAX请求,并在成功时显示下一步。我得到为什么你有一个表单,所以你所有的POST数据都保存在那里,但我会在这里使用会话。 – 2012-07-06 10:53:11

+0

啊,非常好的主意!我正在考虑使用6个不同的提交按钮来制作6个独立的表单,这些按钮将数据保存在6个单独的函数中,这些函数本来就很弱。事情是,我不太清楚如何在.php以外的任何其他工作环境下工作,所以我为了下一步而保存它,但现在我会改变我的注意力。使用cookie工作还是尝试通过会话切换(或者其他所谓的)将登录过程中的.php会话转移到jQuery更好? – Tom 2012-07-06 13:36:51

相关问题