Javascript 如何使用ajax将jquery数组保存到php
我有一个脚本,它获取我添加的表的内容 我想做的是将内容保存到数据库中 在图片中,表格和我从表格中获取的数据集变量的内容 我检查数据集并提醒它检查它是否有值 我的问题是我在保存我传递给php的数组时遇到了问题,因为它无法工作,无法保存。我的saveTable.php foreach参数无效时出错 脚本:Javascript 如何使用ajax将jquery数组保存到php,javascript,php,jquery,ajax,pdo,Javascript,Php,Jquery,Ajax,Pdo,我有一个脚本,它获取我添加的表的内容 我想做的是将内容保存到数据库中 在图片中,表格和我从表格中获取的数据集变量的内容 我检查数据集并提醒它检查它是否有值 我的问题是我在保存我传递给php的数组时遇到了问题,因为它无法工作,无法保存。我的saveTable.php foreach参数无效时出错 脚本: var names = [].map.call($("#myTable2 thead th"), function (th) { return $(th).text(); }); v
var names = [].map.call($("#myTable2 thead th"), function (th) {
return $(th).text();
});
var x = [].map.call($("#myTable2 tbody tr"), function (tr) {
return [].reduce.call(tr.cells, function (p, td, i) {
p[names[i]] = $(td).text();
return p;
}, {});
});
var dataSet = JSON.stringify(x);
alert(dataSet);
$.ajax(
{
url: "saveTable.php",
type: "POST",
data: { tableArray: dataSet},
success: function (result) {
}
});
saveTable.php
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
$host = "localhost";
$user = "root";
$pass = "";
$db = "test";
$dbc = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$tableArray = isset($_REQUEST['tableArray']) ? $_REQUEST['tableArray'] : "";
$sql = "INSERT INTO viewTables (name, age, gender, action) VALUES (:name, :age, :gender, :action)";
$sth = $dbc->prepare($sql);
foreach( $tableArray As $v){
$sth->bindValue(':name', $v[0], PDO::PARAM_STR);
$sth->bindValue(':age', $v[1], PDO::PARAM_STR);
$sth->bindValue(':gender', $v[2], PDO::PARAM_STR);
$sth->bindValue(':action', $v[3], PDO::PARAM_STR);
$sth->execute();
}
?>
新错误:
看起来您正试图在
foreach
循环中使用字符串
类型。尝试:
$tableArray = isset($_REQUEST['tableArray']) ? json_decode($_REQUEST['tableArray']) : array();
这应该能让它起作用。祝你好运,希望这有帮助 您必须使用
json\u decode
将字符串转换为数组,才能将其用作数组。一次print\r($\u请求);退出。我想你只是忘了解析JSON:JSON\u decode($\u POST['tableArray'])