Php 使用jquery将字符串传递给json并循环元素

Php 使用jquery将字符串传递给json并循环元素,php,jquery,json,Php,Jquery,Json,您好,我有一个非常复杂的php脚本,它在jquery中生成一个javascript文件 有一个字符串存储在输入类型文本中,我想转换成json。 输入类型文本的元素数不定。 所以我初始化输入框中的字符串 <input type="text" id="selectbuttons" value="{}"> 等等 然后这是我的脚本,我使用函数addScriptto将其添加到文档的标题中,我还使用jquery jquery-1.6.2.min.js的核心来创建json对象 $document

您好,我有一个非常复杂的php脚本,它在jquery中生成一个javascript文件 有一个字符串存储在输入类型文本中,我想转换成json。 输入类型文本的元素数不定。 所以我初始化输入框中的字符串

<input type="text" id="selectbuttons" value="{}">
等等

然后这是我的脚本,我使用函数addScriptto将其添加到文档的标题中,我还使用jquery jquery-1.6.2.min.js的核心来创建json对象

$document->addScriptto('
$.noConflict();
jQuery(document).ready(function($) {
var loaded=$("#selectButtons").val();
var obj = jQuery.parseJSON(loaded);
}); //end of dom ready

');
但是当字符串不是空的时候,我不能让它工作
我的json语法有问题吗?而且,我以后能够循环所有元素并检索数据吗?提前感谢

也许只需在JSON周围放置
[…]
,这样它就可以理解为一个数组,类似于:

var obj = jQuery.parseJSON( '[' + loaded + ']' );

也许只需在JSON周围放置
[…]
,就可以将其理解为一个数组,例如:

var obj = jQuery.parseJSON( '[' + loaded + ']' );

是的,您的JSON语法错误。你应该像这样做:

[{"button":"bt1","style":"style1"},{"button":"bt2","style":"style2"}]

然后您将拥有对象数组。

是的,您的JSON语法是错误的。你应该像这样做:

[{"button":"bt1","style":"style1"},{"button":"bt2","style":"style2"}]

然后您将拥有一个对象数组。

您的JSON字符串应该是如下所示的数组格式

[{"button":"bt1","style":"style1"},{"button":"bt2","style":"style2"}]
然后,您可以使用$.each循环使用JOSN值,如下所示:

$.each(yourJSONstring,function(i,values) {
  //yourJSONstring holds the JSON array
  // i is just the loop index. it will increment by 1 in every loop
  alert(values.button) //will alert bt1 in the 1st loop, bt2 in 2nd
  alert(values.style) //will alert style1 in 1st loop, style2 in 2nd
  //You can have values here of the keys in JSON using the dot notation as above and do your operations.
})

您的JSON字符串应该是如下所示的数组格式

[{"button":"bt1","style":"style1"},{"button":"bt2","style":"style2"}]
然后,您可以使用$.each循环使用JOSN值,如下所示:

$.each(yourJSONstring,function(i,values) {
  //yourJSONstring holds the JSON array
  // i is just the loop index. it will increment by 1 in every loop
  alert(values.button) //will alert bt1 in the 1st loop, bt2 in 2nd
  alert(values.style) //will alert style1 in 1st loop, style2 in 2nd
  //You can have values here of the keys in JSON using the dot notation as above and do your operations.
})

不过我还是得到了一个错误,这是我现在在输入类型文本中的字符串:
[{“button”:“small”,“style”:“Link”}]
我还尝试过在dom ready
var obj=$.parseJSON(loaded)中使用不带jquery前缀的函数但仍然没有运气你知道它不起作用吗?您的代码实际上是什么时候执行的?从您发布的代码中,我可以看到您的代码将在文档准备就绪时执行,然后您的文本框为空。这就是你想做的还是你有按钮?你能告诉我更多的细节吗?我在某个页面上有一些关于Jquery的其他东西。当我尝试你的代码时,其他的东西破坏了这一点,但是效果很好,
var obj=jQuery.parseJSON('.'''.''.''.[{“name”:“John”,“style”:“hello”},{“helo”:“world”}].''''.')请注意,我使用字符串连接,因为我在php脚本中,这是有意义的,因为您需要字符串来解析它。我写的只是一个有效的json对象示例。我很高兴你解决了这个问题,直到我得到一个错误,这是我现在输入类型文本中的字符串:
[{“button”:“small”,“style”:“Link”}]
我也尝试过在dom ready
var obj=$.parseJSON(loaded)中使用不带jquery前缀的函数但仍然没有运气你知道它不起作用吗?您的代码实际上是什么时候执行的?从您发布的代码中,我可以看到您的代码将在文档准备就绪时执行,然后您的文本框为空。这就是你想做的还是你有按钮?你能告诉我更多的细节吗?我在某个页面上有一些关于Jquery的其他东西。当我尝试你的代码时,其他的东西破坏了这一点,但是效果很好,
var obj=jQuery.parseJSON('.'''.''.''.[{“name”:“John”,“style”:“hello”},{“helo”:“world”}].''''.')请注意,我使用字符串连接,因为我在php脚本中,这是有意义的,因为您需要字符串来解析它。我写的只是一个有效的json对象示例。我很高兴你解决了这个问题。这不起作用。我无法用parse创建json对象json@Theodore如果您已经有JSON格式的值,比如[{'button':'bt1'},{'button':'bt2'}],那么您没有;不需要执行parseJSON(loaded),只需将加载的变量传递给$.each(),并确保JSON字符串的开头和结尾都有方括号,否则它将无法工作并循环遍历每个字符而不是每个键。
var yourJSONstring=[{“button”:“bt1”,“style”:“style1”},{“button”:“bt2”,“style”:“style2”}];$。each(yourJSONstring,function(i,values){alert(values.button)alert(values.style)}
这段代码不起作用,我做错了什么?@Theodore$.each()的结束括号在代码中缺失,因此不起作用。只需添加另一个结束“)'在上一个'}'之后,我注意到它的工作方式与charm类似。这不起作用,我无法使用parse创建json对象json@Theodore如果您已经有JSON格式的值,比如[{'button':'bt1'},{'button':'bt2'}],那么您没有;不需要执行parseJSON(loaded),只需将加载的变量传递给$.each(),并确保JSON字符串的开头和结尾都有方括号,否则它将无法工作并循环遍历每个字符而不是每个键。
var yourJSONstring=[{“button”:“bt1”,“style”:“style1”},{“button”:“bt2”,“style”:“style2”}];$。each(yourJSONstring,function(i,values){alert(values.button)alert(values.style)}
这段代码不起作用我做错了什么?@Theodore代码中缺少$.each()的结束括号,因此它不起作用。只需在最后一个'}之后添加另一个结束''),我刚刚注意到它像一个符咒一样起作用