2011-09-27 9 views
0

私は、javascript関数onchangeを呼び出すzendフォームselect要素を持っています。次ZendフォームsetAttribs with json_encode

$element->setAttribs(array('onchange' => 'toggleSelect(this.value, ' . json_encode($this->_testData) . ')')); 

問題は、両方の、あるZENDのonchangeとjson_encodeは、二重引用符を使用するので、それは次のようになります。

無効なプロパティID文句
<select onchange="toggleSelect(1, {"foo" : "bar"})"></select> 

。私はそれが問題を引き起こしている二重引用符だと思っているが、修正する方法を知らない。

+0

あなたのコードは私に適しています。私は ''を取得します。 toggleSelect()のコードを投稿できますか?あなたの問題があるかもしれません。 – vascowhite

答えて

1

あなたは

有効なHTMLも、まだ有効なJSONオブジェクトとして、あなたの引数を解釈すべき
<select onchange="toggleSelect(1, {&quot;foo&quot; : &quot;bar&quot;})"></select> 

で終わるべきではhtmlspecialcharsを使用して

$element->setAttribs(array('onchange' => 'toggleSelect(this.value, ' . htmlspecialchars(json_encode($this->_testData)) . ')')); 

を試してみてください。