我在PHP中构建一个数组并将其转换为JSON,然后我通过onclick事件处理它并通过AJAX发送到另一个文件。
问题是php数组中的某些值中包含空格。这似乎打破了JSON对象,这意味着我的AJAX调用失败了。
这是一段代码,可以尝试和详细说明:
//PHP Array looks like this:
Array
(
[card_id] => 1
[img_id] => 11
[card_name] => Layout1retro_original
[card_qty] => 1
[img_thumb] => albums/160915_E165/thumbs/011_cover-lp-cd_originalDPP_Polaroid.jpg
[img_hires] =>
[img_full] => albums/160915_E165/images/011_cover-lp-cd_originalDPP_Polaroid.jpg
[media] => retro
[finish] => Perl290
[size] => original
[backing] =>
[can_crop] =>
[needs_to_be_cropped] => 1
[been_cropped] =>
[aspect_ratio] => 0
[offer_CMF] =>
[retro-name] => A value
)
问题key => val
对是retro-name
。 JSON正在突破A
和value
之间的空间。
我使用json_encode
将数组转换为JSON对象以使用Javascript传递:stripslashes(json_encode($array))
。
然后我将其作为data attribute
添加到html元素中,以便我可以使用onclick
事件来抓取它。
以下是数据属性中断的地方:[removed excess code for clarity...] "retro-name":"A" value"}
请注意,它在"
之后添加了结束A
。这打破了JSON对象的其余部分,因此我的AJAX调用失败。
我该如何解决这个问题?
答案 0 :(得分:4)
我最好的猜测是因为JSON是用双引号括起来的数据属性呈现的,这在HTML中很常见。请使用单引号,而不是双引号。 PHP使用双引号输出JSON。
如果这不起作用,请您使用JSON如何呈现数据属性的示例来更新您的问题。
答案 1 :(得分:0)
如果我要猜测,stripslashes()
"
A
A" value
\
之后"
删除斜线UITableView
}。我几乎可以肯定原始数据中UIScrollView
前面有一个card_id
,您没有逐字显示我们。
答案 2 :(得分:0)
另一种方法:
只需将Dim WshShell, strCurDir, File, strDesktop
Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("AllUsersDesktop")
Set ofso = CreateObject("Scripting.FileSystemObject")
strPath = ofso.GetParentFolderName(WScript.ScriptFullName)
File = "pwsafe.psafe3"
strCurDir = ofso.BuildPath(strPath, File)
ofso.CopyFile strCurDir , strDesktop , OverwriteExisting
放入卡片div
{{1}}
然后将卡数据传递给JS中的变量
{{1}}
然后你与你的数据和div有关系。