Ajax有时候需要发送一个数组,或者接收一个数组。
比如需要提交一个交易清单的时候,自然必须用一个数组,表示每个商品有多少个
Ajax传给后台多个数组
//ajax异步请求
function saveOrder(){
var name=new Array();
var num=new Array();
var id=new Array();
count=0;
for (var i = 0; i < 22; i++) {
if($("#goodsNum"+i).val()>0){
name[count] = $("#dropdownMenu"+i).text();
num[count] = $("#goodsNum"+i).val();
id[count] = i;
count++;
}
}
if(count<=0){
alert("未录入任何数据");
return;
}
var r=confirm("确定录入销售数据?");
if (!r) return;
$.ajax({
type:"POST", //默认值: "GET")。请求方式 ("POST" 或 "GET"), 默认为 "GET"
url:"order_submit.php", //当前页地址。发送请求的地址
data:{
goodsName:name,
goodsNum:num,
ids:id},
success:function(data){
if(data==0){
alert("订单录入成功!");
window.location.reload();
}
},
async:true, //true为异步请求,false为同步请求
error:function(){
alert("请求失败");
}
});
}
而相应地,后台应该怎么接收呢?
这里使用PHP语言来进行讲解
Ajax传入数组 PHP处理 处理Date类型数据插入
<?php session_start(); ?>
<?php
require "sql.php";
// 计算当前的ID_ORDER 订单号
$sql9 = "select * from order_num";
$result9 = mysql_query ( $sql9 );
$row9 = mysql_fetch_array ( $result9 );
$id_order = $row9 ["num"];
$new_num = $id_order + 1;
$sql10 = "update order_num SET num='" . $new_num . "' where id='1'";
$result10 = mysql_query ( $sql10 );
// 从传入数组解析订单对应的商品和数量
$name = $_POST ['goodsName'];
$num = $_POST ["goodsNum"];
$id = $_POST ["ids"];
// 录入订单商品内容
for($i = 0; $i < count ( $name ); $i ++) { // 对应的使用方法
$sql = "insert into orders (id_order,type,id_goods,goods_num,goods_name,id_shop) VALUES ('" . $row9 ["num"] . "','2','" . $id [$i] . "','" . $num [$i] . "','" . $name [$i] . "','" . $_SESSION ["userId"] . "')";
$result = mysql_query ( $sql );
}
// 检测用户的类型
$sql1 = "select * from user where account='" . $_SESSION ["userId"] . "'";
$result1 = mysql_query ( $sql1 );
$row1 = mysql_fetch_array ( $result1 );
// 录入订单 日期的处理很简单 就一个date('Y-m-d') 搞定
date_default_timezone_set ( PRC ); // 设置时区
$sql8 = "INSERT INTO sell(sell_time,id_shop,shop_type,id_order,order_type) VALUES ('" . date ( 'Y-m-d' ) . "', '" . $_SESSION ["userId"] . "','" . $row1 ["type"] . "','" . $row9 ["num"] . "', '2')";
$result8 = mysql_query ( $sql8 );
echo 0;
?>
使用的还是php旧语法,见笑了/捂脸逃…