2014-11-05 42 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 
相關問題