PHP插入语句在Firefox中运行两次,在I.E中运行一次

时间:2013-10-23 19:09:35

标签: php mysql firefox

我真的被困在这里。我有一个插入语句在Firefox上运行两次,但(正确)只在I.E.运行一次。

可能导致Firefox两次运行insert语句的原因是什么?它只运行此查询两次,而不是页面上的其他查询。除了我在下面发布的内容之外,我甚至评论了所有其他代码,它仍然在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中清除缓存无济于事。

编辑:提交表格的代码getteps.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 个答案:

答案 0 :(得分:0)

不确定是否会导致此问题,但请更改此内容......

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

......对此......

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

这可能会导致一些跨浏览器的差异。

答案 1 :(得分:0)

我强烈建议您关闭php脚本中的错误报告,看看问题是否仍然存在。error_reporting(0);我遇到了与firefox相同的问题而且工作正常。否则,请查看Similar question and suggestions

答案 2 :(得分:0)

如果您在<HTML>标记之前输出任何文字, firefox 就有重新加载页面的坏习惯。这意味着,您的代码将执行两次。

我建议确保任何输出(查询结果,调试消息等)都在<body> html标记内,而不是在其外部。

这件事让我疯了一次,而我正在将查询输出到标记的最开头(用于调试)。

如果是这种情况,我会惊讶于这种令人讨厌的行为仍然存在。

编辑:哦,我刚看到这个问题来自2013 ... xD。不知何故stackoverflow弹出这个,我认为这是一个最近的问题。

嗯,无论如何,这可能是你的回答人员!