我在javascript中有一个2D数组。
目前我正在运行一个for循环,在每个循环中我都会调用ajax来更新数据库。
我知道这不是一个好形式,我正在寻找一种只用一次ajax调用从循环中更新数据库的方法。
我知道我必须将数组传递到ajax页面并一次性更新但是对于我的生活我无法弄清楚从哪里开始
任何帮助非常感谢
继承我的javascript for loop
for(var m=0; m<array.length; m++){
$.post("update_page_positions.php",{page_ref:array[m][0], ref:array[m][12], menu_pos:array[m][1], sub_menu_pos:array[m][2], top_menu:array[m][3], pagelink:array[m][4], indexpage:array[m][5], hidden:array[m][6], page_title:array[m][7], page_desc:array[m][8], page_keywords:array[m][9], page_name:array[m][10], deletedpage:array[m][11]},
function(data,status){
});
继承人我的ajax php代码
<?
include("connect.php");
$ref = $_POST['ref'];
$page_ref = $_POST['page_ref'];
$menu_pos = $_POST['menu_pos'];
$sub_menu_pos = $_POST['sub_menu_pos'];
$top_menu = $_POST['top_menu'];
$indexpage = $_POST['indexpage'];
$page_name = $_POST['page_name'];
$page_title = $_POST['page_title'];
$page_desc = $_POST['page_desc'];
$page_keywords = $_POST['page_keywords'];
$hidden = $_POST['hidden'];
$pagelink = $_POST['pagelink'];
$deletedpage = $_POST['deletedpage'];
mysql_query("UPDATE pages SET menu_pos='$menu_pos', sub_menu_pos='$sub_menu_pos', top_menu='$top_menu', indexpage='$indexpage', page_name='$page_name', page_title='$page_title', desc1='$page_desc', keywords_list='$page_keywords', hidden='$hidden', link='$pagelink' WHERE ref='$ref' AND page_ref='$page_ref'")
?>
答案 0 :(得分:1)
JS-呼叫:
$.post('update_page_positions.php',
{'myArray': m},
function(data, statusText) {
// This block is optional, fires when the ajax call is complete
}
);
AJAX的处理程序:
<?php
include("connect.php");
$myArray = json_decode($_POST['myArray']);
// do stuff with $myArray here.
?>
答案 1 :(得分:0)
像这样发布整个数组:
$ .post(“update_page_positions.php”,{“your_array”:array} //...
然后在PHP中引用这个变量:$ _POST ['your_array'],它将是数组以及
var_dump($_POST['your_array']);
这将帮助您查看其结构并进一步使用它。
答案 2 :(得分:0)
创建一个包含所有对象的数组:
var data = [];
for(var m=0; m<array.length; m++){
var obj = {page_ref : array[m][0],
menu_pos : array[m][1],
sub_menu_pos : array[m][2],
top_menu : array[m][3],
pagelink : array[m][4],
indexpage : array[m][5],
hidden : array[m][6],
page_title : array[m][7],
page_desc : array[m][8],
page_keywords : array[m][9],
page_name : array[m][10],
deletedpage : array[m][11],
ref : array[m][12]
};
data.push(obj)
});
$.post("update_page_positions.php", data);
在服务器端进行迭代:
<?php
foreach( $_POST as $P ) {
include("connect.php");
$ref = $P['ref'];
$page_ref = $P['page_ref'];
$menu_pos = $P['menu_pos'];
$sub_menu_pos = $P['sub_menu_pos'];
$top_menu = $P['top_menu'];
$indexpage = $P['indexpage'];
$page_name = $P['page_name'];
$page_title = $P['page_title'];
$page_desc = $P['page_desc'];
$page_keywords = $P['page_keywords'];
$hidden = $P['hidden'];
$pagelink = $P['pagelink'];
$deletedpage = $P['deletedpage'];
mysql_query("UPDATE pages ......")
}
?>