我有一个表单,我可以使用提交按钮提交。当我按下这个提交按钮时,我会看到一个弹出窗口,询问是否有“密码”(rfid)。这是由另一个表单处理,该表单POST密码以便PHP处理验证过程。如果密码已确认,我希望它返回并提交第一个表单,以便POST该内容。我只是想不出任何方式回到第一个表单提交。
弹出窗口由表单元素的onSubmit =“”处理,并调用一个使弹出窗口显示的JavaScript函数。
这是我的两种形式:
<form id="klausur" action="php/action_klausur.php" method="post" onSubmit="return getRFID();">
<div class="selections">
</p>
<p><span class="tag">Fach</span>
<select name="fach" class="minimal">
<?php
populate_fach();
?>
</select>
</p>
<p><span class="tag">Tag</span>
<select name="tag" class="minimal">
<option value="M">Montag</option>
<option value="D">Dienstag</option>
<option value="Mi">Mittwoch</option>
<option value="Do">Donnerstag</option>
<option value="F">Freitag</option>
</select>
</p>
<p><span class="tag">Block</span>
<select name="block" class="minimal">
<option value="1">07:30 - 09:00</option>
<option value="2">09:25 - 10:55</option>
<option value="3">11:15 - 12:45</option>
<option value="4">13:30 - 15:00</option>
<option value="5">15:15 - 16:45</option>
</select>
</p>
</div>
<input type="submit" class="block" value="ABSENDEN">
</form>
<form id="rfid_field" action="php/check_rfid.php" method="post">
<input type="text" name="rfid" id="rfid" class="rfid" autofocus>
</form>
这是显示弹出窗口的JavaScript代码段:
function getRFID(){
"use strict";
var modal = document.getElementById('rfidPopup');
modal.style.display = "block";
return false;
}
所以我的问题基本上是:当密码检查结果为正时,我如何回到第一次提交表单?
编辑:从应重定向的第二种形式添加PHP代码:
<?php
//Fügt die Funktionen der Datei database_con.php hinzu
include 'database_con.php';
//Speichert den Inhalt des RFID Feldes in die Variable $rfid
$rfid = $_POST["rfid"];
//Öffnet eine Verbindung zur Datenbank
open_connection();
global $conn;
$query = "SELECT Lehrer_RFID from Lehrer";
$result = $conn->query($query);
$rows = resultsToArry($result);
//Gibt alle Infos über die Variable aus zum testen
//var_dump($rows);
if(verifyRFID($rfid, $rows)){
}
$result->free();
function resultsToArry($result){
$rows = array();
while($row = $result->fetch_assoc()){
$rows[] = $row;
}
return $rows;
}
function verifyRFID($rfid, $rows){
foreach ($rows as $value) {
if($value == $rfid) {
return true;
}
}
return false;
}
?>
答案 0 :(得分:0)
由于您使用的是PHP,因此表单提交将重新加载页面。当一个表单提交依赖于另一个表单时,表单应该异步提交。这里jQuery ajax会有所帮助
$(document).ready(function(){
$("#rfidPopUpForm").submit(function(e) {
e.preventDefault();
if(submitForm(this)) {
submitForm($('#mainForm'))
};
});
function submitForm(form) {
var data = {};
$.each(form, function(i, v){
var input = $(v);
data[input.attr("name")] = input.val();
delete data["undefined"];
});
return $.ajax({
contentType:"application/json; charset=utf-8",
type:form.attr("method"),
url:form.attr("action"),
dataType:'json',
data:JSON.stringify(data),
success:function(data) {
console.log(data)
}
});
}
})
&#13;
注意:它不是一个完整的解决方案。因此,不要指望它会按原样运行。我已经通过某种假设写了这个。
希望这有帮助!
-AG