2013-10-23 37 views
0

我真的被困在這裏。我有一個插入語句,它在Firefox上運行兩次,但在I.E中只有(正確)只運行一次。PHP插入語句在Firefox中運行兩次,一次在I.E

什麼可能導致Firefox運行插入語句兩次?它只運行這個查詢兩次,而不是頁面上的其他查詢。我儘可能地將所有其他代碼註釋掉,除了我在下面發佈的內容外,它仍然在Firefox中插入兩次。

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> '; 
} 

編輯:從PHP頁面調用getSteps.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> 
+3

我沒有仔細研究你的代碼,但除非涉及到一些JS,否則我看不出瀏覽器可能會有什麼不同。 – TecBrat

+0

誰立即降低了這一點?這不是像我沒有嘗試過發佈之前尋找這個... – wiscWeb

+0

是否有任何循環涉及我看到$ cycleGo = false;並且奇怪的是,這個代碼之外還有別的東西。 PDOExecption是否曾經啓動過? –

回答

0

不知道如果這是造成問題,但改變這個...

'idNum='+<?php print $idNum; ?> 

...這個..

'&idNum=<?php print $idNum; ?>' 

這可能會導致一些跨瀏覽器的差異。

+0

試過...不幸的是,我仍然在Firefox上獲得2個新行。 – wiscWeb

+0

javascript中的這種基本級聯如何給跨瀏覽器帶來問題? –

+1

@LorenzMeyer提交一個可以工作的整數,但是當第一個選項的值爲「none」時,大多數瀏覽器會拋出一個JS錯誤(他們應該這樣做),但是我已經看到了一些(ahem * IE * ahem)嘗試自動更正此類錯誤。不是什麼導致這個問題,但值得注意。 – Jacob

0

我強烈建議你關閉你的php腳本中的錯誤報告,看看問題是否依然存在。 error_reporting(0);我有與Firefox相同的問題,工作。否則,請Similar question and suggestions

0

如果輸出<HTML>標記之前的任何文本,火狐有壞習慣重裝的頁面。這意味着,您的代碼將執行兩次。

我建議確保任何輸出(查詢結果,調試消息等)在<body> html標記內正確,而不是在標記之外。

這件事讓我瘋狂了一次,而我輸出的查詢標記的開始(調試)。

如果是這種情況,我會感到驚訝,這種討厭的行爲仍然存在。

編輯:哦,我剛纔看到這個問題是從2013年... xD。不知何故,stackoverflow彈出了這一點,我認爲這是一個最近的問題。

好吧無論如何,這可能是你的答案鄉親!