0

私は ColdFusion を初めて使用し、MS Access で簡単に実行できるいくつかの単純な機能を実行する方法を理解するのに苦労しています。

「submit」という名前のメソッドがありませんというエラーが表示され続けます。このエラーは、フォーム形式がフラッシュであるためにのみ発生します。

どんな助けでも大歓迎です。

    <html>
<cfparam name="form.state" default="">
<cfparam name="form.lastname" default="">

<!---Grid Source---> 
<cfquery name="getArtists" datasource="cfartgallery">
    SELECT A.*
    FROM ARTISTS A
    WHERE
        1=1
    AND STATE like <cfqueryparam value="%#form.state#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
    AND LASTNAME like <cfqueryparam value="%#form.lastname#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
    ORDER BY A.LASTNAME, A.FIRSTNAME
</cfquery>


<head>
</head>
<body style="padding:20px;">

<cfform action="TEST.cfm" method="post" format="flash">


<cfformgroup type="horizontal" style="backgroundAlpha:0;font-size:12;color:##000;">
    <cfformgroup type="vertical" width="100">

<!---Query for STATE--->
<cfquery name="getState" datasource="cfartgallery">
    SELECT A.STATE   
    FROM ARTISTS A
    WHERE
        1=1
        AND LASTNAME like <cfqueryparam value="%#form.lastname#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
</cfquery>

<!---STATE Dropdown---> 
<cfselect name="state" query="getState" queryposition="below" 
    label="State:"
    value="STATE"
    display="STATE"  
    required="no"
    selected="#form.state#"
    onchange="submit();"
    style="backgroundAlpha:0;" width="125">
    <option></option>
</cfselect>


    </cfformgroup>
    <cfformgroup type="vertical" width="100">

<!---Query for LastName--->
<cfquery name="getLast" datasource="cfartgallery">
    SELECT A.LASTNAME   
    FROM ARTISTS A
    WHERE
        1=1
        AND STATE like <cfqueryparam value="%#form.state#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
</cfquery>

<!---LastName Dropdown---> 
<cfselect name="lastname" query="getLast" queryposition="below" 
    label="Last Name:"  value="LASTNAME" display="LASTNAME"  
    selected="#form.lastname#"
    required="no" 
    onchange="submit();"
    style="backgroundAlpha:0;" width="125">
    <option></option>
</cfselect>

    <a href="TEST.cfm"><input type="button" value="Reset"></a>
    </cfformgroup>
    </cfformgroup>

     <cfformitem type="spacer" height="20"/>


<!---Grid---> 
        <cfgrid name="myGrid" query="getArtists" format="html">
            <cfgridcolumn name="ARTISTID" header="ARTISTID" width="75" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="FIRSTNAME" header="FIRSTNAME" width="100" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="LASTNAME" header="LASTNAME" width="75" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="ADDRESS" header="ADDRESS" width="100" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="CITY" header="CITY" width="125" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="STATE" header="STATE" width="125" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="POSTALCODE" header="POSTALCODE" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="EMAIL" header="EMAIL" width="125" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="PHONE" header="PHONE" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="FAX" header="FAX" headeralign="center" dataalign="center"/>
            <cfgridcolumn name="THEPASSWORD" header="THEPASSWORD" headeralign="center" dataalign="center"/>
         </cfgrid>

    </cfform>

</body>
</html>
4

3 に答える 3

1

Dan が良い点を指摘してくれました。私の最初の回答は、Flash フォームではなく、HTML フォームに基づいていました。そのため、元の回答は無効です。ただし、ColdFusion の Flash フォームでは JavaScript ではなく ActionScript が使用されていることがわかりました。Flash フォームでの ActionScript の使用のリファレンスを参照してください。そのページには、すべてのフォーム コントロールでフォームをリセットまたは送信するために使用できるカスタム ActionScript 関数がresetForm()およびsubmitForm(). onchangeイベントsubmit();submitForm()次のように変更してみてください。

    onchange="submitForm()"

ActionScript にセミコロンが必要かどうかはわかりません。


* --- 歴史的な目的のための以下の元の回答 --- *

「'submit' という名前のメソッドがありません。」というエラーが表示されたときに、あなたは言いませんでした。あなたが提供したコードを見ると、フォームの都道府県または姓のドロップダウン ボックスから何かを選択するとエラーが発生すると思います。これらの選択のいずれかが変更されたときにフォームを送信しようとしていますか? 私の仮定が正しければ、フォームに入力してidから、送信ステートメントを修飾してみてください。このようなもの:

フォームにid

<cfform id="yourformid" action="TEST.cfm" method="post" format="flash">

送信ステートメントを修飾する

<cfselect ...
    onchange="document.getElementById("yourformid").submit();"
于 2013-01-02T20:28:52.430 に答える
1

このコンテキストでは、HTML フォームは生成されません。したがって、JavaScript/DOM を使用することはできません

注: の内部はすべて<cfsavecontent>ActionScript です。

<cfsavecontent variable="astest">
if(_global.arrMembers == undefined) _global.arrMembers = data.dataProvider.slice(0);
    var arrMembers = _global.arrMembers;
var arrDisplay:Array = [];

for(var i = 0; i < arrMembers.length; i++)
 {
    if(arrMembers[i].dept == myselect1.value || myselect1.value == 'All')
    {
        arrDisplay.push(arrMembers[i]);
    }
}
    data.dataProvider = arrDisplay;

</cfsavecontent>

じゃあ後で:

<cfselect ... onChange="#astest#">

参照: http://www.asfusion.com/examples/item/filtering-records-on-a-cfform-grid

于 2013-01-02T22:00:49.140 に答える
0

これ、

onchange="submit();"

だろう

onchange="this.form.submit();"

HTMLフォームがある場合。フラッシュフォームについてはよくわかりません。

于 2013-01-02T20:23:16.927 に答える