使用输入字段刷新浏览器的问题?

时间:2013-12-06 13:34:20

标签: php mysql sql

我有一个网页,其中包含一个简单的任务列表,我将从SQL-db中删除。与此列表一起,我有一个简单的普通输入字段,我可以在SQL中向列表中添加一些新任务。所有带有一些文本字段的标准,以及一个“添加”按钮,它将我发送到“handler.php”,在那里我抓取数据并填充到数据库中。到目前为止一切都很好。

在处理程序中我只是将数据填入数据库,然后执行普通的php“header()”回调列表。

我的问题是更新列表。当我将数据输入字段并通过它自己选项卡并按下“ENTER”键完成数据输入时,一切正常。

但是,如果我将数据输入字段并使用鼠标在按钮上“点击”,或者甚至将自己标记到按钮并按Enter,我会返回列表,但最新的数据库条目不是'从数据库中拉出来了吗?

我可以强制浏览器重新加载(Ctrl-F5)并拉出新数据,但我想让它自动发生,就像我在输入字段中点击ENTER一样。

我的简单表格

<form name ="frm_todo" method="get" action="handle_verification.php">
    <table><tr>
      <td align="right">Date </td>
    </tr>
    <tr>
      <td><input size="20" type="date" name="inp_date"/></td>
    </tr></table>
    <input type="submit" name="{$submitString}" value="{$submitValue}"/>
</form>

这是处理程序代码的一小部分(我删除了一大块预处理代码。

$qry = "INSERT INTO verification (v_date) ";
$qry .= "VALUES ('$db_date')";
$res = mysql_query( $qry, $g_dbh) or die ("Failed!".  mysql_error());
header('Location: http://www.backtolist.com/mylist.php');
exit();

嗯,这是我的循环的缩短版本,用于从数据库获取列表,我已经删除了很多处理内容以保持简短,希望你能得到图片。

$qry = "SELECT * FROM verification ORDER BY v_date ASC $limit";
$result_id = mysql_query($qry, $global_dbh) or die("Error --->".mysql_error());

$tableStr = get_tableHeader();
$tableStr .= '<tbody>';
while($row = mysql_fetch_array($result_id)) {
    // some processing/formatting
    $tableStr .= '<tr><td>'.$id.'</td><td>'.$date.'</td><td>'.$desc.'</td>';     
    $tableStr .= '</tr>';
}
$tableStr .= '</tbody></table>';
echo $tableStr;

对于这种行为有什么解释,或者指出我可能做错了什么?

Thnx提前, 谦卑 (用一些代码更新,并做了一些澄清,sry)

1 个答案:

答案 0 :(得分:0)

输入字段的默认操作可能会导致网站刷新。 你可以使用

$('#submit').addEventListener("click", function (event) {
    event.preventDefault();
    handleData();
    return false;
}, false);

以防止这种情况发生,然后调用该函数来处理您的数据。