0

誰かが、必要に応じて繰り返しアップロードする画像ファイルを選択できるウィジェットであるXFormsを使用して、コーディングする方法を教えてもらえますか?つまり、ユーザーは一度に1つの写真をアップロードしますが、必要に応じて何度もアップロードを続けるオプションがあります。

それは要素または単なる要素のいずれかである可能性があります。リピート要素がトリガー要素とどのように関連しているかわかりません。repeat要素はXFormsプロセッサにどのUI要素を繰り返し表示するかを指示するのですか?そして、トリガー要素は、基になるモデルを更新するボタンですか?

この情報を取得する方法がわかりません。大まかに次のようなものが必要ですか?

<xforms:repeat 
                <xforms:trigger>
                    <xforms:label>Add pic</xforms:label>
                    <xforms:upload
                        ref="data/picture[@id='1']"
                        mediatype="image/*">
                    </xforms:upload>
                </xforms:trigger>
</xforms:repeat>

たとえば、ユーザーが5枚の写真をアップロードした場合、各写真をpic1、pic2、pic3として識別できますか?

ありがとうございました!

4

1 に答える 1

0

Xforms Repeat 要素は、表示する既存のデータ全体を繰り返します。やりたいことは、既存の写真を表示し、新しい写真を挿入することです。XForms wikibook は非常に包括的であるため、http://en.wikibooks.org/wiki/XForms/Insertおよびhttp://en.wikibooks.org/wiki/XForms/Repeat_into_tableを参照してください。

以下はテストされていない例であり、何をする必要があるかをよく示しています。

<html 
   xmlns="http://www.w3.org/1999/xhtml" 
   xmlns:xf="http://www.w3.org/2002/xforms" 
   xmlns:ev="http://www.w3.org/2001/xml-events">
   <head>
      <title>XForms insert example</title>
      <xf:model>
         <xf:instance>
            <Data xmlns="">
               <Photo name="My Photo">
                    <!-- Data here -->
               </Photo>
               <NewPhoto name="">
               </NewPhoto>
            </Data>
         </xf:instance>
      </xf:model>
   </head>
   <body>
      <fieldset>
         <legend>Company Phone List</legend>
         <p>
            <b>Uploaded Photos...</b>
            <ul>
            <xf:repeat id="list" nodeset="/Data/Photo">
               <li><xf:output ref="@name" /></li>
            </xf:repeat>
            </ul>
         </p>
      </fieldset>
      <fieldset>
         <legend>Add New Photo</legend>
         <p> <!-- here is where we get the new record -->
            <xf:input ref="/Data/NewPhoto/@name">
               <xf:label>Photo Name:</xf:label>
            </xf:input>
            <xforms:upload
                        ref="/Data/NewPhoto"
                        mediatype="image/*">
            </xforms:upload>
            <xf:trigger>
               <xf:label>Insert... </xf:label>
               <xf:action ev:event="DOMActivate">
                  <xf:insert nodeset="/Data/Photo" at="index('list')" position="after" />
                  <xf:setvalue ref="/Data/Photo[index('list')]/@name" value="/Data/NewPhoto/@name" />
                  <xf:setvalue ref="/Data/Photo[index('list')]" value="/Data/NewPhoto" />
               </xf:action>
            </xf:trigger>
         </p>
      </fieldset>
   </body>
</html>
于 2013-05-17T01:30:10.317 に答える