1

HTML ドロップダウン リストの行があり、ユーザーがオプションの 1 つを選択するたびに、フォームを送信するクラスを介して jQuery 関数を呼び出します。

<form id="workorderform" action="saveworkorder.php" method="post">
    <select name="applicationtype" class="checkvalueonchange savevalueonchange">
         <option></option>
         <option value="Uplift" <?php echo ($wo['applicationtype']=='Uplift')?'selected':''; ?>>Uplift</option>
     </select> 
 </form>

クラスsavevalueonchangeコール

$(".savevalueonchange").change(function() {
    autoSave(); 
});

次に呼び出す

function autoSave() {
    if($("#wostatus").val()=='open'){
         $("#workorderform").submit();
    }
 }

に情報を投稿するsaveworkorder.php

//remove existing chargecodes
$sql = "DELETE FROM workorderchargecodes WHERE compresscoid = '".trim($_REQUEST['formid'])."'";
mssql_query($sql, $dbconn);
//now save chargecodes  
$code_prefix = 'code_';
foreach($_POST as $thisPostKey => $thisPostValue) {
    if((substr($thisPostKey, 0, strlen($code_prefix)))==$code_prefix) {
        if(trim($thisPostValue)!=''):
             $exists=false;
            $sql = "SELECT * FROM workorderchargecodes WHERE compresscoid='".trim($_REQUEST['formid'])."' AND code='".substr($thisPostKey, strlen($code_prefix), strlen($thisPostKey))."'";
            $res = mssql_query($sql, $dbconn);
            while($arr = mssql_fetch_assoc($res)){
                $exists=true;
            } 
            if($exists==false){
                $sql = "INSERT INTO workorderchargecodes (
                    compresscoid,
                    code,
                    time
                    ) VALUES (
                    '".trim($_REQUEST['formid'])."',
                    '".substr($thisPostKey, strlen($code_prefix), strlen($thisPostKey))."',                         '".$thisPostValue."'
            )";
                mssql_query($sql, $dbconn);
            }   
        endif;
    }
}

ご覧のとおり、コードをデータベースに挿入する前にデータベースからコードを選択していますが、どういうわけかまだ請求コードが重複しています。私はこれを数か月間台無しにしましたが、それはまだ起こり続けています.

何か案は?

4

2 に答える 2

0

次のように、 autosave()に追加return false;してみてください。

function autoSave() {

   if($("#wostatus").val()=='open'){

       $("#workorderform").submit();

       return false;  // add here
   }
}

二重提出を防ぎます。

于 2012-09-15T12:03:11.187 に答える
0
<form id="workorderform" action="saveworkorder.php" method="post" onsubmit="return false;">
    <select name="applicationtype" class="checkvalueonchange savevalueonchange">
         <option></option>
         <option value="Uplift" <?php echo ($wo['applicationtype']=='Uplift')?'selected':''; ?>>Uplift</option>
     </select> 
 </form>

このフォームを使用してください

それは使うobsubmit="return false;"

于 2012-09-15T12:06:16.833 に答える