2014-03-28 83 views
0

嗨,我正在尋找一些幫助。我正在使用Thomas J Bradley的Signature Pad。我想要做的是將簽名的輸出存儲到數據庫中,然後在需要時調用它。如何將PHP數組轉換爲Javascript

步驟1

存儲輸出信息到數據庫中。 (完成)

http://jsfiddle.net/54L7t/3/

Save_sign.php

<?php 
include 'info.php'; 
$con=mysqli_connect($host,$username,$password,$db_name); 

$sign_data = $_REQUEST['output']; 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql="INSERT INTO sign (data) 
VALUES 
('$sign_data')"; 

if (!mysqli_query($con,$sql)) 
{ 
    die('Error: ' . mysqli_error($con)); 
} 
echo "1 record added"; 

mysqli_close($con); 

?> 

注:存儲在數據庫中的信息是一個數組。

example: [{"lx":80,"ly":41,"mx":80,"my":40},{"lx":80,"ly":40,"mx":80,"my":41}...] 

步驟2

調用從數據庫中的數據,並將其傳遞給我的AJAX命令(btnGet)。我遇到的問題是,該領域內的數據,檢索時變成一個數組,我需要傳遞給我的再生功能:

$('.sigReturn').signaturePad(ReadOnly).regenerate(data); 

PHP不允許我返回數組,繼承人什麼即時通訊目前正在使用:

return_sign.php

<?php 
include 'info.php'; 
$con=mysqli_connect($host,$username,$password,$db_name); 

$sign_location = $_REQUEST['value']; 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT data FROM sign WHERE SignID='$sign_location'"); 
while($row = mysqli_fetch_array($result)) 
{ 
echo stripslashes(implode("", $row)); //i know that the implode turns it to string, was the only way i could get the data to my ajax command. 
} 

mysqli_close($con); 

?> 

因此,如何將我的數據傳遞給我的AJAX命令,避免從PHP數組字符串轉換錯誤?

感謝

+1

從什麼時候PHP不知道如何溝通(或者更確切地說, '翻譯')?如果您要使用JSON與您的前端進行通信,請使用json_encode()和json_decode()。注意一些UTF-8翻譯問題,但大多數請求不會有問題。 –

+0

我沒有使用JSON,你能否詳細說明一下? – Aero204

+0

您應該回顯數組的json_encode並將其解析到您的js中 – rakeshjain

回答

3

把你的陣列,並對其進行編碼與

echo json_encode($array); 

成JSON然後修改你的Ajax來處理它,添加數據類型字段現在

dataType: "json" 

data從變量成功函數是一個你可以使用的JavaScript對象。

+0

如果你以正確的方式設置你的php頭部,你不用擔心jQuery試圖將它評估爲JSON。 –

+0

我不需要解碼json嗎? – Aero204

+0

@Aero204 jQuery現在爲你製作 – slash197

0

您可以將其作爲JSON返回,並讓jQuery將其解析爲瀏覽器代碼中的JavaScript對象。 所以不是

echo stripslashes 

你會對其進行編碼

echo json_encode($array) 
+0

伊夫只是嘗試這樣做,我似乎得到以下: 「數據:對象 0: 「[{」 LX 「:80,」 LY 「:41,」 MX 「:80,」 我的「:40},{ 「lx」:80,「ly」:40,「mx」:80,「my」:41} ...]「' 我需要將數據分開放置。它仍然不會將此數據視爲數組。 – Aero204

+0

我認爲它與我的select語句有關,數據需要被拆分...我不認爲這發生了。 – Aero204

+0

當然你需要先用php格式化爲合適的結構,然後將結果反饋給瀏覽器。 – Zharktas

相關問題