kyl*_*lex 2 javascript php ajax jquery
我有以下代码:
<script type="text/javascript">
$(document).ready(function() {
// Initialise the table
$('#table_1').tableDnD({
onDrop: function(table, row) {
$.tableDnD.serialize();
$.ajax({
type: "POST",
url: "test.php?"+$.tableDnD.serialize(),
data: "",
success: function(html){
alert("Success");
}
});
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
将数据发送到test.php:
<?php
$table_1[] = $_GET['table_1'];
$i = 0;
if(!empty($table_1[0])){
foreach($table_1 as $value) {
foreach($value as $row){
$i++;
mysql_query("UPDATE mytable SET tableOrder='$i' WHERE id = '$row'");
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,table_1数组使用$ _GET检索数据,但是ajax代码表示我们正在使用POST发送.如果我将$ _GET更改为$ _POST则不再有效.为什么是这样?
读取时$_POST,应该传入值data而不是URL查询字符串.
您的JavaScript代码必须更改如下:
$.ajax({
type: "POST",
url: "test.php",
data: $.tableDnD.serialize(),
success: function(html){
alert("Success");
}
});
Run Code Online (Sandbox Code Playgroud)
然后你就可以做到:
<?php
$table_1[] = $_POST['table_1'];
?>
Run Code Online (Sandbox Code Playgroud)
你的orignal代码正在运行,因为Mike Sherov在下面的评论中指出$_GET,无论用于提交数据的HTTP动词如何,都可以随时访问URL查询字符串中传递的任何数据.
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |