我真的被困在这里了。 我有一个插入语句在 Firefox 上运行两次,但(正确)在 IE 中只运行一次。
是什么原因导致 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
任何想法将不胜感激。 我尝试清除火狐中的缓存无济于事。
编辑:来自提交表单的代码得到步骤.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"> </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>
不确定这是否导致了问题,但请更改此...
'idNum='+<?php print $idNum; ?>
。对此..
'&idNum=<?php print $idNum; ?>'
这可能会导致一些跨浏览器差异。
我强烈建议您关闭 php 脚本中的错误报告,看看问题是否仍然存在。error_reporting(0);
我在使用Firefox时遇到了同样的问题,并且有效。否则,请查看类似的问题和建议
如果你在 <HTML>
标签之前输出任何文本,Firefox 有一个重新加载页面的坏习惯。这意味着,您的代码将执行两次。
我建议确保任何输出(查询结果,调试消息等)都正确位于<body>
html标签内,而不是在标签外。
当我将查询输出到标记的最开头(用于调试)时,这件事让我发疯了一次。
如果是这样的话,我会惊讶于这种令人讨厌的行为仍然存在。
编辑:哦,我刚刚看到这个问题来自2013年... xD。不知何故,堆栈溢出弹出了这个,我认为这是最近的一个问题。
好吧,无论如何,这可能是您的答案!