我目前正在使用一种表单,它接收用户数据并在提交时传递给mySQL。它有一个开头段落,我想在提交失败时更改以显示任何错误。我想将错误传递给刷新的表单,因为未能向用户显示错误。这是我的开放div。通过HTML表单上的sessionStorage变量传递错误重新加载
Title Here
Content Here
在提交我的剧本我的$错误变量设置为false,那么表单提交将可以继续$errors == false时。我检查php中的各种错误,并将它们逐一追加到$ errors。在最后我
if($_POST['submit']){
//variable to hold relavent error messages. Set to false
$error = false;
//check each form field for errors
if(!$title){
$error .= $missingTitle;
}else{
$title = filter_var($title, FILTER_SANITIZE_STRING);
$title = mysqli_real_escape_string($link, $title);
}//Check for Grocoordinates
if(!$lat || !$lng){
$error .= $missingGeo;
}//etc
在我建立我的mySQL查询之前,我会检查错误并杀死我的代码,如果他们存在。在这里,我还将我的错误传递到sessionStorage,并回显包含我的错误的div。
if($error){
//pass errors from php to session Storage to display on reload
echo "";
echo "
echo "
Here Is Proof that this is Executing
";die();
}
包含错误的div和段落都在页面重新加载时完美执行。它们显示在我的地图底部。
在上面运行的所有php提交代码中,我拉出sessionStorage变量并尝试从我打开的div更改我的innerHTML以反映错误。
var error = sessionStorage.getItem('error');
if(error){
document.getElementById('formExplained').innerHTML = "
" + error + "
}
此代码将不能在我的第一次提交的正确执行,但是在我的表格的顶部,我的愿望是显示我的错误,第二个提交。看起来,无论我怎么改变,只要延迟2次刷新,就会显示错误。
任何指导,让我走出这个泥潭,将不胜感激。
2017-06-19
DMrFrost
+0
你应该做的sessionStorage在你的文件的末尾,而不是一开始 –
+0
检查'[弃用]同步XMLHttpRequest的主线程上的,因为其所带来的影响最终用户的体验弃用。如需更多帮助,请查看https://xhr.spec.whatwg.org/。 (匿名)@ map.php:52' –
+0
谢谢Shahaf!事实确实如此。 –