首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ajax表单提交

Ajax表单提交
EN

Stack Overflow用户
提问于 2014-03-27 19:47:11
回答 4查看 201关注 0票数 0

我试图使用ajax发布a表单,但表单从未提交。使用firebug进行调试不会显示任何错误。任何帮助都是非常感谢的。我对PHP和编码很陌生。

Taskload.php -将数据推送到主页:

代码语言:javascript
运行
复制
    <?php
include_once 'dbconnect.php';

            $varacctname = $_REQUEST['acct'];
            $varViewtasks = mysql_query("SELECT * FROM tasks WHERE taskresource = '$varacctname' AND taskstatus='Active'");
                while ($rows = mysql_fetch_array($varViewtasks)) {
                    $accttask = $rows['tasktitle'];
                    $acctTaskStatus = $rows['taskstatus'];
                    $taskOwner = $rows['taskOwnerFullName'];
                    $taskid = $rows['taskid'];
                    echo "<div class=\"timeline-messages\">
                                  <div class=\"msg-time-chat\">
                                      <a href=\"#\" class=\"message-img\"><img class=\"avatar\" src=\"img/chat-avatar.jpg\" alt=\"\"></a>
                                      <div class=\"message-body msg-in\">
                                          <span class=\"arrow\"></span>
                                          <div class=\"text\">
                                              <p class=\"attribution\"><a href=\"#\">$taskOwner</a></p>
                                              <p> $accttask</p>
                                          </div>
                                          <form id=\"completetaskform\"  method=\"post\" >
                                            <input type=\"hidden\" name=\"taskid\" value=\"$taskid\" />
                                            <input type=\"hidden\" name=\"acct\" value=\"$varacctname\" />
                                            <input type=\"submit\" id=\"completetaskbtn\" class=\"btn btn-success\" />  
                                          </form>
                                      </div>
                                  </div>
                            </div>";
                }
?>

Tasks.js -脚本所在的地方

代码语言:javascript
运行
复制
  $("#completetaskform").submit(function(){

            $.ajax ({
              type:"POST",
              url:"functions//completeTask.php",
              data: $('form#completetaskform').serialize(),
              success: function(msg){
                notifyTaskCompleted();
                location.reload();

              },
            });
            return false;
          });

completeTask.php,其中php代码运行以将任务标记为已完成。

代码语言:javascript
运行
复制
  <?php
    include 'dbconnect.php';

    $acct = $_POST['acct'];
    $taskid = $_POST['taskid'];
    $complete = 'completed';
    mysql_query("UPDATE tasks SET taskstatus='$complete' WHERE taskresource='$acct' AND taskid='$taskid' ");
       ?>

-希望这能更好地描述这个问题.

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-31 04:20:43

经过多次试验,我发现将表单数据部分更改为$(this).serialize,而不是$('form#completetaskform').serialize()。不知道为什么但这起作用了。谢谢。

代码语言:javascript
运行
复制
$("form#completetaskform").submit(function(){
        $.ajax ({
          type:"POST",
          url:"Functions/completeTask.php",
          data: $(this).serialize(),
          success: function(msg){
            notifyTaskCompleted();
            location.reload();

          },
        });
        return false;
      });
票数 0
EN

Stack Overflow用户

发布于 2014-03-27 19:51:17

试试SerializeArray

代码语言:javascript
运行
复制
 $("#completetaskform").submit(function(){

        $.ajax ({
          type:"POST",
          url:"functions//completeTask.php",
          data: $('form#completetaskform').serialize(),
          success: function(msg){
            notifyTaskCompleted();
            location.reload();

          },
        });
        return false;
      });

甚至是$.post

代码语言:javascript
运行
复制
$.post('functions/completeTrask.php',$('form#completetaskform').serialize(),function(){
            notifyTaskCompleted();
            location.reload();
});
票数 1
EN

Stack Overflow用户

发布于 2014-03-27 20:25:26

1.Change

代码语言:javascript
运行
复制
$("#completetaskform").submit(function(){

代码语言:javascript
运行
复制
$("#completetaskform").on('click',function(){

因为jquery事件是".on()",而不是".submit()“

2.Change

代码语言:javascript
运行
复制
<input type=\"submit\" id=\"#completetaskbtn\" class=\"btn btn-success\"> Complete </a>

代码语言:javascript
运行
复制
<button id="completetaskbtn"> Complete </button>

因为你不需要真正的提交按钮。

3.我不确定您的url是否正确,但这将提交您的表单到php。

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

https://stackoverflow.com/questions/22697734

复制
相关文章

相似问题

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