проблема холодного синтеза с переплетом формы - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть следующее:

 <cfquery name="getArt" datasource="cfartgallery">
   select * from art where artid < 10
 </cfquery>
 <cfform name="myform2" width="620" height="750"  timeout="100" preservedata="yes" wmode="transparent">
<cfoutput query="getArt">
<cfinput id="pickers#currentRow#" name="pickmany" type="checkbox" value="#artname#" >
<label for="pickers#currentRow#">#artname#</label> 
<br/>
</cfoutput>
<cfinput type="text" name="pickmany_selected"  bind="{pickmany}" size="50">
</cfform>

всякий раз, когда вы устанавливаете флажок, он добавляет в поле «pickmany_selected».

Теперь я пытаюсь сделать то же поведение сФлэш-форма.

 <cfform name="myform" width="620" height="750" format="Flash" timeout="100" preservedata="yes" wmode="transparent">    
<cfoutput query="getArt">
<cfinput id="pickers#currentRow#" name="pickmany" type="checkbox" value="#artname#" label="#artname#"><br/>
</cfoutput>

</cfform>   

это ломается.это работает, только если я поставлю name = "pickmany # currentRow #":

  <cfform name="myform" width="620" height="750" format="Flash" timeout="100" preservedata="yes" wmode="transparent">    
<cfoutput query="getArt">
<cfinput id="pickers#currentRow#" name="pickmany#currentRow#" type="checkbox" value="#artname#" label="#artname#"><br/>
</cfoutput>
<cfinput type="text" name="pickmany_selected"  bind="{pickmany1}" size="50">
  </cfform>

что мне нужно сделать для флеш-формы, чтобы pickmany_selected связывался правильно?в последнем примере я не могу привязаться к общему имени.ненавижу эти вспышки.

1 Ответ

1 голос
/ 03 февраля 2011

это работает только если я положу имя = "pickmany # currentRow #":

Да, флэш-формы требуют, чтобы все поля Имена были уникальными. Из-за этого я подозреваю, что ваша цель невозможна с привязкой. Тем не менее, вы можете свернуть свою собственную функцию и вызвать ее по клику. Мои флеш-навыки довольно ржавые. Но что-то вроде этого:

<cfform name="myform" width="620" height="750" format="Flash" timeout="100" preservedata="yes" wmode="transparent">    
    <cfformitem type="script">
        function updateSelectedArt():Void{
          var elem;
          var values = [];
          var total  = parseInt(myform.pickmany_total);
          for (var i = 1; i <= total; i++) {
            elem = _root["pickmany"+ i];
              if (elem.selected) {
                  values.push(elem.label);
              }
          }    
          // use whatever delmiter makes sense
          _root["pickmany_selected"].text = values.join(",");
       }    
    </cfformitem>
    <cfoutput query="getArt">
        <cfinput name="pickmany#currentRow#" type="checkbox" value="#artname#" onClick="updateSelectedArt()" label="#artname#"><br/>
    </cfoutput>
    <cfinput type="hidden" name="pickmany_total" value="#getArt.recordCount#">
    <cfinput type="text" name="pickmany_selected"  value="" size="50">
</cfform>
...