jquery$.ajax到php问题
我对jquery$.ajax有两个问题。 第一个问题是我有一个名为action.php的php文件,下面是代码:jquery$.ajax到php问题,php,ajax,post,jquery,Php,Ajax,Post,Jquery,我对jquery$.ajax有两个问题。 第一个问题是我有一个名为action.php的php文件,下面是代码: if($_GET['action']=='add'){ //rest of the code here } 我使用jquery$.Ajax函数在表单填充时调用它: $.ajax({type:"POST", url:"action.php?action=add", data:$("#form").serialize(), cache:false, timeout:10000}
if($_GET['action']=='add'){
//rest of the code here
}
我使用jquery$.Ajax函数在表单填充时调用它:
$.ajax({type:"POST", url:"action.php?action=add", data:$("#form").serialize(), cache:false, timeout:10000});
这是可行的,但我想知道是否仍然可以发送action=addcode和数据,而不是url
第二个问题是我有一个链接:
<a href="#" onclick="delete(4);">delete row from mysql where id is 4</a>
当然还有action.php代码:
if($_GET['action']=='deletestudent'){
mysql_query("DELETE FROM `students` WHERE `student_id` = {$_POST['id']}");
}
但是它不起作用。我该怎么办?你有一个函数
deleteUser()
,你正在使用delete()
甚至你正在发送post action isdelete
,而你的php脚本正在寻找deleteStudior
使您的onclickonclick=“deleteUser(4);”
改变你的行为
$.ajax({url:"action.php?action=delete&id="+id, cache:false, timeout:10000});}
到
关于第一个问题: 您可以使用所需的名称/值向表单中添加隐藏的输入。例如:
<input type="hidden" name="action" value="add" />
关于第二个问题:
根据您的代码,您似乎发送了“delete”,但在您测试的条件下,如果等于“deletestudent”,这可能是您的问题。更改类型以获取或删除它,$。ajax默认类型为GET
$.ajax({url:"action.php?action=delete&id="+id, cache:false, timeout:10000});}
在php中更改您的
....WHERE `student_id` = {$_GET['id']}");
第一部分:是
var postData = $("#form").serialize();
postData.action = 'add';
$.ajax({
type:"POST"
, url: "action.php"
, data: postData
, cache: false
, timeout:10000
});
对于第二部分:由于“操作”值不一致而无效:delete
vsdelete student
。函数名也不是:delete()
vsdeleteUser()
此外,我还建议在该查询中应用一些SQL注入保护。很抱歉,我不得不否决这一点。GET请求应为幂等句点。电子战。你的逗号怎么了?真恶心,恶心?我不喜欢后置分隔符。在这行的开头看到它们,就非常清楚地表明我正在处理一个新的值/参数/whatevever。也使编辑更容易。
....WHERE `student_id` = {$_GET['id']}");
var postData = $("#form").serialize();
postData.action = 'add';
$.ajax({
type:"POST"
, url: "action.php"
, data: postData
, cache: false
, timeout:10000
});