我试图弄清楚如何在提交后通过HTML表单提交一些数据进行编辑并存储为cookie ...
最重要的是,表单验证:
<?php
//check if form was sent
if(isset($_POST['send'])){
//some basic validation
if(strlen($_POST['myname']) > 2){
//set the cookie if passed
setcookie('myname', $_POST['myname']);
}
}
//set error if didn't pass validation
else {
$error[] = 'Your name is required!';
}
?>
因此,如果用户发布数据,它将捕获它并将其存储在cookie中。 如果没有,将给出错误:
<?php
//check for errors
if(isset($error)){
foreach($error as $error){
echo '<p style="background: red;">'.$error.'</p>';
}
}
?>
使用PHP的HTML表单:
<form method="post">
<input name="myname" type="text" value="<?php if(isset($_COOKIE["myname"])){
echo $_COOKIE["myname"];} ?>" placeholder="Your Name">
<input name="send" type="submit" value="send">
</form>
这用于收集数据并发送它以通过PHP验证以设置cookie。如果已设置cookie,我希望它使用内联PHP代码显示该值。
当提交表单时会发生cookie,但用户只有在刷新页面后才能看到它,我可以添加标题(&#34;刷新:0&#34;);但它并没有解决问题,因为刷新时不会显示错误按摩。
我需要将它用于这些表单中的一些,所以目前我正在寻找一个快速简单的PHP解决方案,但它也可以是一个合适的Jquery / AJAX代码段。
答案 0 :(得分:0)
您只能通过jquery,ajax
执行此操作获取cookie值 -
的 Jquery的强> var ckVal = $ .cookie(&#34; cookiename&#34;)
javascript -
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
答案 1 :(得分:0)
第1名正如您在comment
中提到的form and php
same page
中的form
代码一样,如此简单地提交ajax
。不需要error message
。
第二名:如果有任何错误意味着您只是简单地展示submited value
并将value attribute
放在value="<?php if(isset($_POST['myname'])){ echo $_POST['myname']; } ?>"
这样的
<?php
if(isset($_POST['send'])){
if(strlen($_POST['myname']) > 2){
// here you can do whatever you want
// header('Location:next_page.php');
}else{
$error[] = 'Your name is required! and it should be minimum three character ';
}
}
if(isset($error)){
foreach($error as $error){
echo '<p style="background: red;">'.$error.'</p>';
}
}
?>
The HTML form with PHP:
<form method="post">
<input name="myname" type="text" value="<?php if(isset($_POST['myname'])){
echo $_POST['myname']; } ?>" placeholder="Your Name">
<input name="send" type="submit" value="send">
</form>
PHP:
SystemControlBackgroundAltMediumBrush
答案 2 :(得分:0)
在Web2中,我们可以通过使用AJAX来实现。只需在表格sumbit上点击ajax并
$('#submit_btn').on('click', function (e) {
e.preventDefault();
var $this = $('#form_id');
$.ajax({
url: 'setcookie.php',
data: $this.serialize(),
dataType: 'html',
type: 'POST',
beforeSend: function () {
// show loader
},
success: function (html) {
// Show success message
// Set value of input elements by reading cookie in JS
},
error: function () {
// Show ValidationError
}
}); });
在cookie.php中,在表单输入上放置服务器端验证。如果你想把代码放在同一页面上,也可以在同一页面上制作ajax。