2014-03-28 74 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

相关问题