0

この投稿は一種のマルチパートの質問ですが、基本的に私は自分の製品でオブジェクトの配列を読み込んでいます。私がやりたいことは、次のようなボタンのリストを作成することです:

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

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

<?php endforeach;  ?>

ボタンをクリックするたびに、対応する製品に情報を変更したい。私の質問は、Javascript でこの php 配列にアクセスする最良の方法は何ですか? jsonに変換する必要がありますか?

第二に、これらすべての div タグにクリック イベントを持たせるには、プロトタイプで何を使用すればよいでしょうか。また、どのように製品を識別しますか? クリックされたボタンの注文番号を取得し、json から情報を取得する必要がありますか? では、配列の 3 番目のボタンをクリックすると、json の 3 番目のエントリが取得されますか?

jquery より scriptaculous が提供するエフェクトが好きなので、プロトタイプを学ぼうとしています。

4

2 に答える 2

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 に答える
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 に答える