我试图使用ajax发布a表单,但表单从未提交。使用firebug进行调试不会显示任何错误。任何帮助都是非常感谢的。我对PHP和编码很陌生。
Taskload.php -将数据推送到主页:
<?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 -脚本所在的地方
$("#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代码运行以将任务标记为已完成。
<?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' ");
?>
-希望这能更好地描述这个问题.
发布于 2014-03-31 04:20:43
经过多次试验,我发现将表单数据部分更改为$(this).serialize,而不是$('form#completetaskform').serialize()。不知道为什么但这起作用了。谢谢。
$("form#completetaskform").submit(function(){
$.ajax ({
type:"POST",
url:"Functions/completeTask.php",
data: $(this).serialize(),
success: function(msg){
notifyTaskCompleted();
location.reload();
},
});
return false;
});
发布于 2014-03-27 19:51:17
$("#completetaskform").submit(function(){
$.ajax ({
type:"POST",
url:"functions//completeTask.php",
data: $('form#completetaskform').serialize(),
success: function(msg){
notifyTaskCompleted();
location.reload();
},
});
return false;
});
甚至是$.post
$.post('functions/completeTrask.php',$('form#completetaskform').serialize(),function(){
notifyTaskCompleted();
location.reload();
});
发布于 2014-03-27 20:25:26
1.Change
$("#completetaskform").submit(function(){
至
$("#completetaskform").on('click',function(){
因为jquery事件是".on()",而不是".submit()“
2.Change
<input type=\"submit\" id=\"#completetaskbtn\" class=\"btn btn-success\"> Complete </a>
至
<button id="completetaskbtn"> Complete </button>
因为你不需要真正的提交按钮。
3.我不确定您的url是否正确,但这将提交您的表单到php。
https://stackoverflow.com/questions/22697734
复制相似问题