0

我正在尝试从属性中获取数据,通过 ajax 将其传递到另一个页面,然后插入到 mysql 中。

现在我有一些 div 元素

<div data-categories="[{"name":"Gastropub","pluralName":"Gastropubs"},{"name":"Food","pluralName":"Food"}]">
Name
</div>

分解它

-----------------------

    [
        {"name":"Gastropub","pluralName":"Gastropubs"},
        {"name":"Food","pluralName":"Food"},
        {"name":"more","pluralName":"more"}
     ]


------------------------

data-categories 是我插入 json_encoded 数组并将其弹出的位置。当我试图做的是找出使用 ajax 来获得该值的最佳实践

var cats = $('div').data('categories');

$.ajax(function(){
 type:"POST",
 url:"other.php",
 data: "data="+cats,
 success:function(data){
    alert("success");
 }
});

其他.php

现在我试图弄清楚如何将每个值分别保存到我的 MySQL 中other.php,如果我有一个包含列的表:name并且pluralName(可能稍后添加更多)在 MySQL 数据中

if(isset($_POST['data'])){

   $insert = $dbh->prepare("INSERT INTO cats(name,pluralName) VALUES(?,?)");

}

如何从一组 json 值中获取这些值并将每个值插入到正确的列中?从上面的例子可以看出,我有超过1 namepluralName

4

2 回答 2

0

进行 AJAX 调用类似于:

var data = $("div").attr("data-categories");
$.ajax({
type: "POST",
url: "other.php",
data: "data="+data,
function(data){
    alert("success");
 }
});

如果您在 $_POST 数组中获取数据,那么您可以使用:

<?php
$str = $_POST['data'];
$data = json_decode($str, true);
//print_r($data);

for($i=0;$i<count($data);$i++) {
     $insert = "INSERT INTO cats(name,pluralName) VALUES('".$data[$i]['name']."','"+$data[$i]['pluralName']+"')";
//Insert in database

}
于 2013-02-22T03:49:43.440 回答
0

尝试这个:

jQuery

var dataStr = $("div").attr("data-categories");
$.ajax({
    type: "POST",
    url: "other.php",
    data: {data:dataStr},
    success:function(data){
        alert("success");
    }
});

PHP 代码

<?php
if(isset($_POST['data']))
{
    $data = $_POST['data'];
    $jsonArray= json_decode($data, true);


    for($i=0;$i<count($jsonArray);$i++) {
        $insert = $dbh->prepare("INSERT INTO cats(name,pluralName) VALUES('".$jsonArray[$i]['name']."','"+$jsonArray[$i]['pluralName']+"')");
    }
}
?>
于 2013-02-22T10:39:05.317 回答