0

私は本当にここで立ち往生しています。Firefox では 2 回実行される挿入ステートメントがありますが、IE では (正しく) 1 回だけ実行されます。

Firefox が挿入ステートメントを 2 回実行する原因は何ですか? このクエリは 2 回だけ実行され、ページ上の他のクエリは実行されません。以下に投稿しているものを除いて、他のすべてのコードをコメントアウトするところまで行きましたが、それでもFirefoxに2回挿入されます。

if((isset($_GET['stepNum']))&&(isset($_GET['idNum']))){
    $stepNum = $_GET['stepNum'];
    $idNum = $_GET['idNum'];

    $startCycleNum = 1;
    $startCycleStatus = 1;
    $cycleGo = true;
    }//end isset if statement
try {
    if ($cycleGo == true) {
$stmtC = $db->prepare('INSERT INTO mytable (cycleNum, cycleStatus, processID) VALUES (:cycleNum, :cycleStatus, :processID)');
$stmtC->execute(array(':cycleNum' => $startCycleNum, ':cycleStatus' => $startCycleStatus, ':processID' => $idNum));
$cycleGo = false; 
$newCycle = $db->lastInsertId();

    }
}//end try
catch (PDOException $ex) {
    echo '<h5>There was an error saving the new cycle.  Please try again.</h5>';
}//end catch

どんなアイデアでも大歓迎です。Firefox でキャッシュをクリアしようとしましたが、役に立ちませんでした。

編集: getsteps.php フォームの送信からのコード

if ($stepNum != 'none') {
    echo '<form name="addNewForm" action="createcycleone?idNum='.$idNum.'stepNum='.$stepNum.'" method="post">

    <table width = "100%" id="formfields">';

    //form inputs

echo '<tr><td colspan="2">&nbsp;</td></tr>
<tr><td colspan="2" style="text-align:center"><input type="submit" value="Save and Create Cycle"></input></td></tr>
</table>
</form> ';
}

編集: getSteps.php を呼び出して正しいステップ数 (フィールド) をロードする PHP ページのコード

//get the stepNum
if((isset($_GET['nid']))&&(isset($_GET['idNum']))){
$stepNum = $_GET['nid'];
$idNum = $_GET['idNum'];
}
  <form id="stepsForm" name="stepsForm">
      <table width ="100%" id="stepfield">

        <tr><td><strong>Number of Steps:</strong></td>
        <td><select name="getSteps" id="getSteps" onchange="$('#formContainer1').load('../files/createUAT/getSteps.php?nid='+this.value+'&idNum='+<?php print $idNum; ?>);">
        <option value="none">Select a Number</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select>
</td></tr></table>
</form>


<div id ="formContainer1" class="formContainer1">

</div>
4

3 に答える 3

0

PHP スクリプトでエラー報告をオフにして、問題が解決しないかどうかを確認することを強くお勧めします。error_reporting(0);私はFirefoxで同じ問題を抱えていましたが、うまくいきました。それ以外の場合は、同様の質問と提案を確認してください

于 2016-06-17T08:27:56.453 に答える
0

タグの前にテキストを出力すると、 Firefoxにはページをリロードするという悪い癖があります。つまり、コードは 2 回実行されます。<HTML>

<body>出力 (クエリの結果、デバッグ メッセージなど) がhtml タグの外側ではなく、適切に内側にあることを確認することをお勧めします。

クエリをマークアップの最初に出力しているときに(デバッグ用に)、そのことが私を夢中にさせました。

その場合、この厄介な動作がまだ存在することに驚かれることでしょう。

編集:ああ、私はこの質問が2013年からあるのを見ました... xD。どういうわけかstackoverflowがこれをポップアップし、最近の質問だと思いました.

とにかく、これはおそらくあなたの答えです!

于 2016-06-17T08:35:20.743 に答える