1

1 つのページ (1 ~ 20 以上) に複数のフォームがあり、それぞれに独自の送信ボタンを設定したいと考えています。各フォームの送信ボタンは、理想的には、フォーム内のデータをデータベースに送信するハンドラー php ファイルに POST します。フォームを「データが送信されました」という確認テキストに置き換えた場合もいいでしょうが、それは後で追加できる上に一種の綿毛です. これをajaxでやりたいのですが、これを達成する方法がわかりません。

私のフォームが単一のフィールドであると仮定して、次のようにします。

<form action="submitHandler.php" method="post">
    <input type="text" value="testdata" name="Details" id="details">
    <button type="submit" onclick="functionThatSendsData">Submit</button>
</form>

これは私の getXMLHTTP() 関数です。私は以前に他のajax関連のものに使用したことがあるので、それが正しいと確信しています

function getXMLHTTP() { //function to return the xml http object
    var xmlhttp=false;  
    try{
        xmlhttp=new XMLHttpRequest();
    }
    catch(e)    {       
        try{            
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e1){
                xmlhttp=false;
            }
        }
    }

    return xmlhttp;
}

私の SubmitHandler.php が次のようになると想像する必要があります。

$data=$_POST['Details'];

//make connection to database, bail if no connection
$connection = odbc_pconnect('db','','');
if (!$connection) { exit("Connection Failed: " . $connection); }

//Insert Fields into DB
$sql = "INSERT INTO TestTable (Data) VALUES ('$data')";
$rs = odbc_exec($connection, $sql);
if (!$rs) { exit("Error in SQL"); }

送信ボタンのクリック時に実行される 'functionThatSendsData' に関するヘルプがほとんど必要なようです。これは単純な例ですが、より多くのフィールド値 (10 程度) を収容できるようにスケーリングする必要があることは明らかです。誰でもこれで私を助けてくれますか? たった1つのデータで動作させることができれば、自分でスケーリングできると思います。

4

2 に答える 2

1

ボタンの送信アクションをキャンセルする必要があります。

古典的には、スクリプトの戻り値として return false を記述します。

return false;

または、Jquery を使用する場合は、アクションの開始時に preventdefault を宣言します: http://api.jquery.com/event.preventDefault/

于 2013-01-23T23:37:30.043 に答える
0

http://www.webmaster-talk.com/javascript-forum/230390-how-can-i-submit-form-without.html

このスレッドの投稿 8 は、私を大いに助けてくれました。後でこれに出くわした人のために投稿すると思いました。

于 2013-01-24T03:39:52.843 に答える