0

選択ボックスが選択された後、ajaxを使用して入力されるはずのある種のフォームを作成しています。より良い方法であなたのアドバイスと提案が必要です。

これが私のスクリプトです。

`[HTML] AND [AJAX]`

    <script type="text/javascript">
            function showReportWrite(str)
            {
            if (str.length==0)
            { 
            document.getElementById("txtHint").innerHTML="";
            return;
            }
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                document.getElementById("report_write").innerHTML=xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","gethint.php?q="+str,true);
            xmlhttp.send();
            }
            </script>

<div id="report_write"></div>

[PHP]

if($form_name == 'form_report1'){
        //action
    }
    if($form_name == 'form_report2'){
        //action
    }
    if($form_name == 'form_report3'){
        //action
    }

    echo '<div id="accordion">';


    echo '<h3><a href="#">Users Details</a></h3>
                <div>
                    <form class="form" name="form_report1">
                        <fieldset>
                        <legend>Client Details:</legend>    
                            <table border="0" cellspacing="10">
                                <tr>
                                    <td><b>Client Name</b></td>
                                    <td><input type="text" name="name" id="name" /></td>
                                </tr>
                                <tr>
                                    <td><b>Date</b></td>
                                    <td><input type="text" name="email" id="email" /> </td>
                                    <td><input type="text" name="email" id="email" /> </td>
                                </tr>
                            </table>
                        </fieldset>    

                        <fieldset>
                        <legend>Candidate Details:</legend>    
                            <table border="0" cellspacing="10">
                                <tr>
                                    <td><b>Name</b></td>
                                    <td><input type="text" name="name" id="name" /></td>
                                </tr>
                                <tr>
                                    <td><b>Date of Birth</b></td>
                                    <td><input type="text" name="email" id="email" /> </td>
                                </tr>
                                <tr>
                                    <td><b>ID or Passport No.</b></td>
                                    <td><input type="text" name="name" id="name" />  </td>
                                </tr>
                                <tr>
                                    <td><b>Country</b></td>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td><b>Address</b></td>
                                    <td><textarea name="text"></textarea></td>
                                </tr>
                                <tr>
                                    <td><b>Contact Details</b></td>
                                    <td><input type="text" name="name" id="name" />  </td>
                                </tr>
                            </table>
                        </fieldset>
                        <input type="submit" value="Update" id="sendbutton" name="sendbutton"/>
                    </form>
                </div>';

アイデアは次のようなものです。ユーザーが選択ボックスを選択すると、ajax は、条件に基づいてform_report1何らかのアクションを実行し、html フォームをエコーする php ファイルを要求します。

ブーストできるAPIが機能する可能性がある他の方法があるかどうか疑問に思っています。専門家としてあなたの提案が必要です。なぜなら、ウェブで他のオプションが見つからなかったからです。ありがとう

4

1 に答える 1

0

まず、jQuery または MooTools を使用して ajax 呼び出しを行います。彼らはこれのためにクロスブラウザの実装を持っています.あなたが最初に投稿したスクリプトのほとんどの部分であなたがやろうとしているようなことです.

これらのフレームワークにより、選択ボックスに欠けているイベント ハンドラーも簡単に使用できるようになります。

あなたのPHPも不完全なようで、$form_name変数がどこからともなく出てくるようです。これを決定するものは何ですか?GETajax 呼び出しで送信するパラメーターをどのように処理していますか? その上、フォームは基本的に投稿するために存在するPOSTため、フォームを作成しないのはなぜですか。

したがって、改善したい場合は、jQuery または MooTools (または別の JavaScript フレームワークですが、これらは最も広く使用されている 2 つです) を入手し、これらを読んで、PHP での ajax 呼び出しの処理についても読んでください。そして、ウェブ上には本当にたくさんのものがあります。

于 2012-05-10T08:18:47.283 に答える