【问题标题】:How to save my jquery array to php using ajax如何使用 ajax 将我的 jquery 数组保存到 php
【发布时间】:2014-09-25 14:10:37
【问题描述】:

我有一个脚本可以获取我添加的表格的内容。

我想做的是将内容保存到数据库中。

图片中的表格和我从表格中获得的 dataSet 变量的内容。

我检查数据集并提醒它检查它是否有价值。

我的问题是我无法保存我传递给 php 的数组,因为它无法正常工作而不是保存。我的 saveTable.php 无效参数 foreach 出现错误。

脚本:

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();
}

?>

新错误:

【问题讨论】:

  • 在 php 代码中使用一次 print_r($_REQUEST); exit;。有没有发帖。
  • 我想你只是忘了解析 JSON:json_decode($_POST['tableArray'])

标签: javascript php jquery ajax pdo


【解决方案1】:

您似乎正在尝试在foreach 循环中使用String 类型。试试:

$tableArray = isset($_REQUEST['tableArray']) ? json_decode($_REQUEST['tableArray']) : array();

这应该可以正常工作。祝你好运,希望这会有帮助!

【讨论】:

    【解决方案2】:

    您必须使用json_decode 将字符串转换为数组才能将其用作数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 2023-03-26
      相关资源
      最近更新 更多