0

submit_pdfボタンは情報をデータベースに保存し、複数回のクリックを避けるために、最初は1回のクリック後に送信ボタンを無効にしましたが、10秒のタイムアウト後にボタンを再度有効にします。送信ボタンが無効になるまでの部分は正常に機能していますが、10秒の遅延を追加しようとすると、機能しないようです。これを手伝っていただければ、本当に助かります。

        echo '  <script language="JavaScript" type="text/javascript">
        //<![CDATA[
        window.open(\'./index_pdf.php?'.$query_string.'\',\'Warehouse_ST\',\'location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no\');
        id_form.submit_pdf.disabled=true;
        window.alert("Data is stored in the database, Please do no click on Submit again without changing any information");

        window.addEvent(\'domready''\',function() 
        {
        var subber = $_REQUEST["submit_pdf"];
        subber.addEvent( \'click'  ,function() ' 
        {
         subber.set( \'value','Submitting...''\' ).disabled = true;
        (function() { subber.disabled = false; subber.set(\'value','submit_pdf'\'); }).delay(10000); // how much time?  10 seconds
        });
        });


        //]]>
        </script>';
4

2 に答える 2

1

setTimeout()を使用してみてください

ボタンを有効にする関数を定義してから、setTimeout()を設定します。

function enableButton(){
    $('#myButton').attr("disabled", false);
}

setTimeout(enableButton, 10000);

関数名は引用符なしで、「()」なしで入力してください。

于 2012-11-20T11:09:05.900 に答える
0

JSコード(aleationのコードは正しい)とこのPHPコードを書くことをお勧めします。

PHP(時間をセッション変数に保存):

session_start(); //At the beginning of the PHP file

define("TIMEOUT", 10); //10 sec

//Check timeout
if (isset($_SESSION['expire'])) {
    if ($_SESSION['expire']-time()>TIMEOUT) {
        unset($_SESSION['expire']);
    }   
}

//Allow to do submit after 10 sec
if (!isset($_SESSION['expire'])) {
    $_SESSION['expire']=time();

    //Your submit code
}

これは、ユーザーがJavaScriptおよびHTTPメッセージを操作できるが、phpコードを操作できないためです。

于 2012-11-20T12:01:32.053 に答える