2014-11-05 117 views
-2

我是PHP新手,想将以下数组引入数据库。如何将JavaScript数组转换为PHP数组?

我认为,最好的方法是先将它转换为PHP数组。

var bildInfo = new Array(); 

bildInfo[0] = "dummy"; 

bildInfo[1] = new Array(); 
bildInfo[1][0] = "Karaffen"; 
bildInfo[1][1] = "Öl auf Leinwand"; 
bildInfo[1][2] = "83 x 120 cm"; 
bildInfo[1][3] = " - "; 
bildInfo[1][4] = "1"; 

bildInfo[2] = new Array(); 
bildInfo[2][0] = "Santé"; 
bildInfo[2][1] = "Öl auf Leinwand"; 
bildInfo[2][2] = "80 x 100 cm"; 
bildInfo[2][3] = " - "; 
bildInfo[2][4] = "1"; 

bildInfo[3] = new Array(); 
bildInfo[3][0] = "Landleben I"; 
bildInfo[3][1] = "Öl auf Leinwand"; 
bildInfo[3][2] = "70 x 100 cm"; 
bildInfo[3][3] = " - "; 
bildInfo[3][4] = "1"; 

bildInfo[4] = new Array(); 
bildInfo[4][0] = "Landleben II"; 
bildInfo[4][1] = "Öl auf Leinwand"; 
bildInfo[4][2] = "70 x 100 cm"; 
bildInfo[4][3] = " - "; 
bildInfo[4][4] = "1"; 

和700更多...

因为数量的我询问一些提示找到做到这一点的最好办法。

该数组是在一个JS/TXT文件,所以我的第一个想法是一个简单的搜索替换像bildInfo$bildInfo,但我不知道如何处理“新阵列()”。

+0

如何访问/生成您的JS数组? – Demurgos 2014-11-05 19:08:38

+0

对我来说,就像你以恶毒的方式存储数据一样。 JavaScript有一个关键的,值为数据结构的对象,类似于你正在考虑的PHP数组结构。 – Brennan 2014-11-05 19:08:52

+0

这是一个文本/ js文件 – hamburger 2014-11-05 19:09:09

回答

2

将您的Javascript数组转换为JSON对象,然后通过Ajax调用将其发送到Php网页。

JavaScript客户端:

var json = $.stringify(bildInfo); 
$.ajax({ 
      type: "POST", 
      url: "/api.php", 
      data: {data : json}, 
      timeout: 6000, 
      error: function(a, b) { 
       if ("timeout" == b) $("#err-timedout").slideDown("slow"); else { 
        $("#err-state").slideDown("slow"); 
        $("#err-state").html("An error occurred: " + b); 
       } 
      }, 
      success: function(a) { 
      } 
}); 

PHP服务器端:

$json_object = json_decode($_POST['data']); 
    // play with your json object with Php. 
1

的最佳方式转换为PHP阵列使用JSON。

首先在JavaScript你想使它成为一个JSON字符串是这样的:

的JavaScript

var jsonArray = JSON.stringify(my_javascript_array); 

现在您可以通过AJAX或者无论你有多想给它的PHP,那么在PHP中,你会解码它。

PHP

$myphpArray = json_decode($json_string); 
var_dump($myphpArray); 
0

我觉得更重要的是要知道如何通过任何类型的数据到后端......这里是高级别:

1)通过了前端JS VAL到后端(在这里你可以用异步AJAX)做到这一点 - 这里我使用jQuery的包装$不用彷徨做到这一点:

var yourJSON = $.stringify(bildInfo); //stringify array into JSON so it can be used in DB: 

    $.get("./path/to/php/file.php", { 
     "_variable" : yourJSON //bind val within the object you're passing in 
     }, 
     function (result) { 
      //do something with the result when it's returned if needed 
     } 
    ); 

2)获取前端JS VAL传递到BAC DMOZ目录与$_GET

$receivedVal = $_GET['_variable']; 

虽然你可能要检查它是否是第一套具有isset() ...(如果它的设置,将其设置为值,如果没有,将其设置为默认为防止空):

$receivedVal = (isset($_GET['_variable']) ? ($_GET['_variable']) : 0); 

$phpArray = json_decode($receivedVal); //decode it and use it how you want 

3)查询数据库:

$qry = 'INSERT INTO yourTable (column_a) 
      VALUES ("' . $phpArray . '")'; 

    $result = $mysqli->query($qry) or die(mysqli_error($mysqli)); //runs fine, or outputs error