Php 创建按钮并在原型中识别它们

Php 创建按钮并在原型中识别它们,php,javascript,prototypejs,scriptaculous,Php,Javascript,Prototypejs,Scriptaculous,这篇文章是一个由多个部分组成的问题,但本质上我是在用我的产品加载一系列对象。我想做的是创建一个按钮列表,如下所示: <?php foreach($records as $product): ?> <div><?php echo $product->name; ?></div> <?php endforeach; ?> 在每个按钮上单击我希望信息更改为相应的产品。我的问题是,用Javascript访问这个php数

这篇文章是一个由多个部分组成的问题,但本质上我是在用我的产品加载一系列对象。我想做的是创建一个按钮列表,如下所示:

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

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

<?php endforeach;  ?>

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

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


我之所以尝试学习prototype,是因为我喜欢Scriptaculous在jquery上提供的效果。

无论您使用的是什么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>
等等。在原型中,这很简单

var el = $("product1");
要获得所有产品,您可以按类别获得它们。在jQuery中:

var all = $(".product");
和原型:

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

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

我建议不要使用原型。我是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的表单生成器,我很久以前就写了这个表单生成器,但最终从未使用过它。你可以随意窃取密码


假设我将这些div包装在另一个See修正答案中。还有其他方法,但效果很好,而且更灵活/可维护。谢谢。我想我会坚持使用jquery,因为我对它很熟悉。将php数组放入javascript/jquery的最佳方法是什么?只需在脚本标记中添加标记?
$(inputId).observe('click', function() {...your code ...});