0

这篇文章是一个多部分的问题,但基本上我正在用我的产品加载一组对象。我想要做的是创建一个这样的按钮列表:

<?php foreach($records as $product): ?>

    <div><?php echo $product->name; ?></div>

<?php endforeach;  ?>

在每个按钮上单击我希望信息更改为相应的产品。我的问题是,用 Javascript 访问这个 php 数组的最佳方法是什么?我应该把它转换成json吗?

其次,我在原型中使用什么来使所有这些 div 标签都有点击事件,我将如何识别产品?我应该检索单击的按钮的订单号并从 json 获取信息吗?那么,如果单击数组中的第三个按钮,我会得到 json 中的第三个条目吗?

我正在尝试学习原型,因为我喜欢 scriptaculuous 提供的 jquery 效果。

4

2 回答 2

0

我建议不要使用原型。我是 Prototype+Scriptaculous 的早期采用者,并用它做了很多工作。到 2009 年,很明显他们失去了开发社区的注意力,而 jQuery 赢了。我不情愿地转向了 jQuery。

我发现 jQuery 语法更简洁,文档更好,社区更大,可用资源更多,其中包括人们可以回答像你这样的问题。

虽然 Scriptaculous 很棒,但 jQuery 的效果插件也同样多。话虽如此,这是解决您的问题的方法...

是的,我会使用 JSON 来定义事物。

这将创建一个新按钮:

var inputId = "myInput";
var elementName = "Price";
var elementValue = "1.99";

$(element).insert(new Element("input", {type:'button', id:inputId, name:elementName, className:'FBButton', value:elementValue }))

这连接了事件:

$(inputId).observe('click', function() {...your code ...});

这是我很久以前编写但从未使用过的基于 JSON/Prototype 的表单生成器的链接。你可以自由地窃取代码。

http://preview.moveable.com/JM/jameslab/JSONForm/

于 2012-05-08T19:54:39.067 回答
0

无论您使用哪种 javascript 工具包,要访问 HTML 元素,请使用该id=属性来唯一标识它们,class=并将它们放入一个公共组中。然后使用您选择的工具包的相应功能来检索它们。

<div id="product1" class="product">Product 1</div>
<div id="product2" class="product">Product 2</div>
<div id="product3" class="product">Product 3</div>

例如,对于 jQuery,您可以使用 id 获取元素product1

var el = $("#product1");

等等。在原型中,这很简单

var el = $("product1");

要获得所有产品,您可以按类别获得它们。在 jQuery 中:

var all = $(".product");

和原型:

var all = $$(".product");

有关所有详细信息,请参阅文档。特别是检查$$$

于 2012-05-08T18:57:15.500 回答