forms 相关问题

表单本质上是一个容器,可用于保存几种类型数据的任何数量的任何数量的子集。 HTML表单用于将数据传递到服务器。 VB和C#表单是用于与用户交互的窗口。

我应该在前端还是后端处理 html 表单验证? [重复]

就像标题所说...我应该在允许表单提交到后端之前确保所有值都有效吗?

回答 2 投票 0

自动完成信用卡到期 cc-exp 未填写所需格式

我最近发现浏览器自动填充功能并未填充我的信用卡到期日期,尽管姓名和卡号填充得很好。该字段确实突出显示,好像它想要...

回答 1 投票 0

使用联系表单 7 将标签文本添加到 Wordpress 站点中的单选按钮

我正在尝试改进我的网站,使其更易于访问并符合 WCAG 2.0(AA 级)指南。这是一个使用 Contact Form 7 创建表单的 WordPress 网站。默认情况下,联系...

回答 1 投票 0

valentina studio 表单设计如何以编程方式向列表视图添加值?

ListView 似乎仅设置为列出视图、查询、自定义(手动输入)列表中的项目。 像 listView.addItem() 这样的 QT 方法不起作用。 我该如何服用val...

回答 1 投票 0

安装 Laravel Collective 不起作用?

我的 laravel 版本 5.7.8 我正在尝试使用以下代码安装最后一个 Laravel Collective: 作曲家要求“laravelcollective/html”:“^ 5.4.0” 但它不起作用,为什么呢? 这是我的代码

回答 5 投票 0

SQLSTATE[42S22]:未找到列:1054 未知列“报告”。

所以我试图打开包含报告数据的刀片之一。但是,它让我发送这样的错误,这是控制器: 所以我试图打开包含报告数据的刀片之一。但是,它让我发送这样的错误,这是控制器: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Report; class ReportController extends Controller { public function approve(Request $request, $id) { $report = Report::findOrFail($id); $data = $request->validate([ 'response_message' => 'required|string|max:1000', ]); $report->update([ 'status' => 'approved', 'response_message' => $data['response_message'], ]); session()->flash('success', 'Laporan berhasil di-ACC dan pesan balasan telah dikirim.'); return redirect()->back(); } public function store(Request $request) { $user = auth()->id(); if ($user === null) { return redirect()->route('login')->with('error', 'User ID tidak ditemukan. Pastikan Anda sudah login.'); } $data = $request->validate([ 'reason' => 'required|string|max:255', 'description' => 'nullable|string', 'reportable_id' => 'required|integer', 'reportable_type' => 'required|string', ]); $data['user_id'] = auth()->id(); Report::create($data); return response()->json(['success' => true]); } public function showReports() { $reports = Report::with('user')->latest()->get(); return view('admins.adminnotifikasi', compact('reports')); } public function userShow() { $reports = Report::where('user_id', auth()->id()) ->where('status', 'approved') ->get(); return view('pages.utama.user.show', compact('reports')); } public function deleteReport($id) { $report = Report::findOrFail($id); if (auth()->user()->role !== 'admin' && $report->user_id !== auth()->id()) { return redirect()->back()->with('error', 'Anda tidak memiliki izin untuk menghapus laporan ini.'); } $report->delete(); session()->flash('success', 'Laporan berhasil dihapus.'); return redirect()->back(); } } 这是模型: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; class Report extends Model { use HasFactory; protected $table = 'reports'; protected $fillable = [ 'reason', 'description', 'user_id', 'status', 'response_message', 'reportable_id', 'reportable_type', ]; protected static function booted() { static::creating(fn($report) => $report->user_id = Auth::id()); } public function user() { return $this->belongsTo(User::class, 'user_id'); // pastikan 'user_id' adalah foreign key yang benar } public function reportable() { return $this->morphTo(); } } 下面是我报告的型号 <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphMany; class AdaApa extends Model { use HasFactory; protected $table = 'adaapa'; protected $fillable = ['title', 'content', 'image']; public function comments(): MorphMany { return $this->morphMany(Comment::class, 'commentable'); } public function likes(): MorphMany { return $this->morphMany(Like::class, 'likeable'); } public function reports(): MorphMany { return $this->morphMany(Report::class, 'reportable'); } } 用户模型: <?php namespace App\Models; use App\Http\Controllers\DiscussionsController; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var array<int, string> */ protected $fillable = [ 'username', // Tambahkan username di sini 'email', 'password', 'role', ]; /** * The attributes that should be hidden for serialization. * * @var array<int, string> */ protected $hidden = [ 'password', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array<string, string> */ protected $casts = [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; public function discussions() { return $this->hasMany(Discussions::class); } /** * Relasi ke model Report. */ public function reports() { return $this->hasMany(Report::class); } } 我的数据库没有任何问题,我将其成功发送到我的数据库这里。所以我的路线也没有任何问题,但我不知道为什么它总是说这样的错误。这也是我用来显示数据的刀片: @foreach ($reports as $report) <div class="alert alert-info"> <strong>Nama User:</strong> {{ $report->user->name ?? 'Tidak diketahui' }}<br> <strong>Berita yang Di-Report:</strong> {{ $report->reportable->title ?? 'Tidak diketahui' }}<br> <strong>Alasan:</strong> {{ $report->reason }}<br> <strong>Alasan:</strong> {{ $report->status }}<br> <strong>Deskripsi:</strong> {{ $report->description ?? 'Tidak ada deskripsi' }}<br> <small>Dilaporkan pada: {{ $report->created_at }}</small> <!-- Form untuk ACC dan mengirim pesan balasan ke user --> <form action="{{ route('report.approve', $report->id) }}" method="POST" class="mt-3"> @csrf <div class="mb-2"> <label for="responseMessage">Pesan Balasan:</label> <textarea name="response_message" class="form-control" rows="2" placeholder="Masukkan pesan balasan untuk user..."></textarea> </div> <button type="submit" class="btn btn-success">Approve Report</button> </form> <form action="{{ route('report.delete', $report->id) }}" method="POST" class="mt-2" onsubmit="return confirm('Apakah Anda yakin ingin menghapus laporan ini?');"> @csrf @method('DELETE') <button type="submit" class="btn btn-danger">Delete Report</button> </form> </div> @endforeach 该错误似乎是由于多态关系设置问题造成的。检查 reportable_type 和 reportable_id,确保报告中的 reportable_type 具有正确的型号名称 App\Models\AdaApa,并且 reportable_id 引用正确的记录。更新下面AdaApa中的关系。 public function reports(): MorphMany { return $this->morphMany(Report::class, 'reportable'); } 在刀片模板中,还要确认 {{ $report->reportable->title }} 正确引用数据。

回答 1 投票 0

如何对 Javascript 表单中的值进行算术?

我正在自学基本的 Javascript,并试图弄清楚如何使用用户在表单中输入的值进行数学运算。 这是我到目前为止所拥有的,但我显然使用了错误的论坛类型,因为......

回答 1 投票 0

在 Code Igniter 表单验证规则中传递多个回调

我想在 codeigniter 表单验证规则中传递多个回调......但只有一个回调有效 我在我的控制器中使用这个语法 $this->form_validation->set_rules( ...

回答 3 投票 0

如果字段为空,HTML5 required 属性如何无法阻止表单提交?

在我的一张表单上,我有一个带有必需属性的文本区域 <question vote="0"> <p>在我的一张表单上,我有一个带有 <strong>required 属性</strong></p> 的文本区域 <pre><code><textarea class="form-control" id="text-area" name="text-area-name" rows="1" placeholder="Enter some information..." required autocomplete="off"></textarea> </code></pre> <p>我已经在我的桌面和 android chrome 浏览器上测试了这个表单。正如预期的那样,如果该字段为空,则表单将不会提交,并且会显示一条消息,告知用户必须填写该字段。</p> <p>奇怪的是,我今天早上检查了我的 Flask 服务器日志,发现某些用户正在尝试提交表单,而该字段为空。因此,应用程序不会将信息放入数据库中,因为它是必填字段。</p> <p>那么,正如问题所述,用户如何提交没有值的表单?我可以寻找什么可能的错误导致这种情况发生?</p> </question> <answer tick="false" vote="0"> <p>用户可以提交 <pre><code>null</code></pre> 值,即使他们使用浏览器开发人员工具设置 <pre><code>required</code></pre> 属性也是如此。如果用户打开浏览器的开发者工具,删除 <pre><code>required</code></pre>,然后提交,则会提交 <pre><code>null</code></pre> 值。对于了解浏览器开发工具的用户来说,这非常容易。为了防止这种情况,您需要在后端添加验证逻辑。</p> </answer> </body></html>

回答 0 投票 0

制作页面告诉浏览器不要缓存/保留输入值

大多数浏览器都会缓存表单输入值。因此,当用户刷新页面时,输入具有相同的值。 这是我的问题。当用户单击“保存”时,服务器会验证 POSTed 数据(例如选中

回答 7 投票 0

如何基于异步条件动态构建 Angular FormGroup 并调整其验证器

我正在 Angular 中开发一个表单,我需要根据通过效果异步检索的条件动态构建 FormGroup。条件 (sameServices) 确定是否

回答 1 投票 0

我如何验证表单,但让它在操作时返回到相同的表单,是否有错误?报名F...</desc> <question vote="2"> <p>这是我的registerFormOne.php代码:</p> <pre><code><?php session_start(); require("validationLibrary.php"); $validForm = true; ?> <html> <head> <title>Registration Form - 1 of 2</title> </head> <body> <h1>Registration - Part 1 of 2</h1> <p>Please fill in all the required information before submitting the information.</p> <form action="registerFormTwo.php" method="post"> <dt>First Name:</dt> <dd><input type="text" name="firstName" /></dd><br /> <dd> <?php if(isset($_POST['firstName'])){ if(!validateRequired($_POST['firstName'])){ $validForm = false; } } ?> </dd><br /> <dt>Last Name:</dt> <dd><input type="text" name="lastName" /></dd><br /> <dd> <?php if(isset($_POST['lastName'])){ if(!validateRequired($_POST['lastName'])){ $validForm = false; } } ?> </dd><br /> <dt>EMail:</dt> <dd><input type="text" name="email" /></dd><br /> <dd> <?php if(isset($_POST['email'])){ if(!validateEmail($_POST['email'])){ $validForm = false; } } ?> </dd><br /> <dt>Age:</dt> <dd><input type="text" name="age" /></dd><br /> <dd> <?php if(isset($_POST['age'])){ if(!validateNumber($_POST['age'])){ $validForm = false; } } ?> </dd><br /> <dt>Date of Birth:</dt> <dd><input type="text" name="dateOfBirth" /></dd><br /> <dd> <?php if(isset($_POST['dateOfBirth'])){ if(!validateRequired($_POST['dateOfBirth'])){ $validForm = false; } } ?> </dd><br /> <dt>Gender:</dt> <dd>Masculino <input type="radio" value="M" name="gender" checked/> &nbsp;&nbsp; Femenino <input type="radio" value="F" name="gender" /> </dd> <dt><input type="submit" /></dt> </form> </body> </html> </code></pre> <p>这是我的validationLibrary.php,我将其用作类:</p> <pre><code><?php function validateRequired($field){ if($field == ""){ echo "Information for this field is required."; return false; } else{ return true; } } function validateNumber($field){ if(!is_numeric($field)){ echo "Only numeric values are allowed in this field."; return false; } else{ return true; } } function validateEmail($field){ $regexp = "/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z-][0-9a-zA-Z-]+\.)+[a-zA-Z](2,6)$/"; if(!preg_match($regexp,$field)){ echo "Please type in a valid email address."; return false; } else{ return true; } } ?> </code></pre> <p>我需要再次重新加载 formOne,如果变量 $validForm 为 false,则不要转到 formTwo。</p> <p>我知道如何做到这一点。</p> </question> <answer tick="true" vote="3"> <p>更改表单的操作属性以提交给自身,而不是表单 #2。仅当您的验证代码通过时,您才会重定向到带有位置标头()的表单#2。</p> </answer> <answer tick="false" vote="1"> <p>对于您来说,作为初学者开发人员,使用 ValidForm Builder 会容易得多。 检查<a href="http://validformbuilder.org" rel="nofollow">http://validformbuilder.org</a></p> <p>它是一个开源表单构建工具,具有您提到的所有这些功能以及更多功能。</p> <p>这并不是一个商业广告(因为它是一个免费使用的开源包),只是一个方便的提示。</p> </answer> <answer tick="false" vote="0"> <p>不知道什么是“最好”的方法,但我所做的是将表单的操作返回到同一页面,然后在将任何内容放在页面上之前检查表单输入 - 如果有问题,我什么也不做,我可以用 <pre><code>$_POST</code></pre> 值预填充值 - 如果没有问题,我使用 <pre><code>header('Location: formTwo.php')</code></pre> 继续:) 如果在更改标头后重新分配变量,则可以传递变量。</p> </answer> <answer tick="false" vote="0"> <p>类似这样的:</p> <pre><code><?php $errors = array(); if (isset($_POST['submit'])) { // validate and possibly populate the $errors array if (empty($errors)) { // do something with the data header('Location: target.php'); exit; } } ?> <html> <?php if (!empty($errors)) : ?> <?php echo implode(', ', $errors) ?> <?php endif; ?> <form> <!-- fill form elements with values if they are set --> ... </form> </html> </code></pre> </answer> <answer tick="false" vote="0"> <p>您是否反对使用 javascript 进行表单验证? 如果不是,它将节省往返服务器的次数,并且可以避免保留表单页面的问题。</p> </answer> </body></html>

这是我的registerFormOne.php代码: 报名F...</desc> <question vote="2"> <p>这是我的registerFormOne.php代码:</p> <pre><code><?php session_start(); require("validationLibrary.php"); $validForm = true; ?> <html> <head> <title>Registration Form - 1 of 2</title> </head> <body> <h1>Registration - Part 1 of 2</h1> <p>Please fill in all the required information before submitting the information.</p> <form action="registerFormTwo.php" method="post"> <dt>First Name:</dt> <dd><input type="text" name="firstName" /></dd><br /> <dd> <?php if(isset($_POST['firstName'])){ if(!validateRequired($_POST['firstName'])){ $validForm = false; } } ?> </dd><br /> <dt>Last Name:</dt> <dd><input type="text" name="lastName" /></dd><br /> <dd> <?php if(isset($_POST['lastName'])){ if(!validateRequired($_POST['lastName'])){ $validForm = false; } } ?> </dd><br /> <dt>EMail:</dt> <dd><input type="text" name="email" /></dd><br /> <dd> <?php if(isset($_POST['email'])){ if(!validateEmail($_POST['email'])){ $validForm = false; } } ?> </dd><br /> <dt>Age:</dt> <dd><input type="text" name="age" /></dd><br /> <dd> <?php if(isset($_POST['age'])){ if(!validateNumber($_POST['age'])){ $validForm = false; } } ?> </dd><br /> <dt>Date of Birth:</dt> <dd><input type="text" name="dateOfBirth" /></dd><br /> <dd> <?php if(isset($_POST['dateOfBirth'])){ if(!validateRequired($_POST['dateOfBirth'])){ $validForm = false; } } ?> </dd><br /> <dt>Gender:</dt> <dd>Masculino <input type="radio" value="M" name="gender" checked/> &nbsp;&nbsp; Femenino <input type="radio" value="F" name="gender" /> </dd> <dt><input type="submit" /></dt> </form> </body> </html> </code></pre> <p>这是我的validationLibrary.php,我将其用作类:</p> <pre><code><?php function validateRequired($field){ if($field == ""){ echo "Information for this field is required."; return false; } else{ return true; } } function validateNumber($field){ if(!is_numeric($field)){ echo "Only numeric values are allowed in this field."; return false; } else{ return true; } } function validateEmail($field){ $regexp = "/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z-][0-9a-zA-Z-]+\.)+[a-zA-Z](2,6)$/"; if(!preg_match($regexp,$field)){ echo "Please type in a valid email address."; return false; } else{ return true; } } ?> </code></pre> <p>我需要再次重新加载 formOne,如果变量 $validForm 为 false,则不要转到 formTwo。</p> <p>我知道如何做到这一点。</p> </question> <answer tick="true" vote="3"> <p>更改表单的操作属性以提交给自身,而不是表单 #2。仅当您的验证代码通过时,您才会重定向到带有位置标头()的表单#2。</p> </answer> <answer tick="false" vote="1"> <p>对于您来说,作为初学者开发人员,使用 ValidForm Builder 会容易得多。 检查<a href="http://validformbuilder.org" rel="nofollow">http://validformbuilder.org</a></p> <p>它是一个开源表单构建工具,具有您提到的所有这些功能以及更多功能。</p> <p>这并不是一个商业广告(因为它是一个免费使用的开源包),只是一个方便的提示。</p> </answer> <answer tick="false" vote="0"> <p>不知道什么是“最好”的方法,但我所做的是将表单的操作返回到同一页面,然后在将任何内容放在页面上之前检查表单输入 - 如果有问题,我什么也不做,我可以用 <pre><code>$_POST</code></pre> 值预填充值 - 如果没有问题,我使用 <pre><code>header('Location: formTwo.php')</code></pre> 继续:) 如果在更改标头后重新分配变量,则可以传递变量。</p> </answer> <answer tick="false" vote="0"> <p>类似这样的:</p> <pre><code><?php $errors = array(); if (isset($_POST['submit'])) { // validate and possibly populate the $errors array if (empty($errors)) { // do something with the data header('Location: target.php'); exit; } } ?> <html> <?php if (!empty($errors)) : ?> <?php echo implode(', ', $errors) ?> <?php endif; ?> <form> <!-- fill form elements with values if they are set --> ... </form> </html> </code></pre> </answer> <answer tick="false" vote="0"> <p>您是否反对使用 javascript 进行表单验证? 如果不是,它将节省往返服务器的次数,并且可以避免保留表单页面的问题。</p> </answer> </body></html>

回答 0 投票 0

形成生成器的表格

我有一个表单需要保存在数据库中,用 PHP 完成非常简单并存储在 MySQL 表中。但维护非常繁琐,所以我想知道是否有(或者我应该自己写一个)

回答 4 投票 0

将值从页面表单传递到 Shopify Liquid 中的 javascript

我在 Shopify 的页面模板中使用链接列表,我需要将其长度传递给 javascript 代码段。我不知道该怎么做。 页面模板包含这一行: {% 分配链接列表 =

回答 1 投票 0

这段代码中的 jQuery focus() 方法在做什么?

我想知道这个脚本中是否需要下面的行,如果需要,它的用途是什么。 $("#quantity-0").focus(); 如果我没有 id 为“quantity-0”的表单字段什么...

回答 1 投票 0

在表单 Web 组件中说:名称为“”的无效表单控件不可聚焦

最近,我向自定义 Web 组件 (jb-input) 添加了一个必需属性,以便在用户将输入留空时显示错误。 重点是在这个组件系列中,验证机制是

回答 1 投票 0

使用 HTML <form> 标签代替 Struts 2 <s:form> 标签是否有效?

我想用 我想用 <form action="someClass"> <s:textarea name="name" label="Name"/> <s:checkboxlist list="{'Male','Female'}" name="gender" label="Gender"/> </form> 而不是 <s:form action="someClass"> <s:textarea name="name" label="Name"/> <s:checkboxlist list="{'Male','Female'}" name="gender" label="Gender"/> </s:form> 因为 <s:form> 标签的默认主题 "xhtml" 与我的 CSS 和主题不兼容 "simple" 如果不使用 <s:fielderror> 标签,它本身无法显示验证错误。 那么使用它有效吗? 到现在为止我都这样使用。我以后这样使用会遇到什么错误吗? 当然您可以使用纯 HTML 标签。 请记住,所有 JSP 自定义标签最终都是渲染 HTML。[1] 正如 Roman 所说,您将失去自动填充值、通过属性名称或键检索标签、错误消息和样式显示等功能。 您最好的做法可能是创建自己的主题并使用自己的模板和 CSS,或者使用 "css_xhtml" 主题并提供您自己的样式。哪个更好取决于我们没有的大量信息,但是 CSS HTML 版本相当灵活,除了必须将 <br/> 标签定义为内联,因为它当前在主题中应该使用的地方不是。 [1] 是的,在通过 HTML 发送之前,它可以在服务器端执行其他操作,例如 SQL 自定义标记。不过,一般来说,自定义标签的目的是发出 HTML。 您可以使用 <form> 标签来处理表单,但它不是 <s:form 标签,您必须手动维护它的属性。 <s:form 使用与框架精确通信的良好属性预设来渲染 <form> 标签。忽略它会缺少框架提供的一些功能,从而导致不正确的用法和错误。

回答 2 投票 0

使用 wp_login_form 尝试错误登录时出现错误消息

所以我使用 wp_login_form 来允许用户登录我网站的前端。我在允许 PHP 代码的小部件中使用 wp_login_form 。 (我这样做是因为当您...时我的登录表单会向下滑动...

回答 2 投票 0

Powerapps 表单未正确映射字段

我有一个包含两列的共享点列表:“utilisateur”和“role”。两者都是必需的。 我在 powerapps 中创建了一个模式为“新建”的表单。在这种形式中有两个...

回答 1 投票 0

以 10 为基数的 int() 的文字无效:“test”

基本上,这就是它的分解方式,我有 3 个模型(测验、问题、答案)。每个测验有 20 个问题,有 4 个可能的答案(多项选择)。数字可能会有所不同,但您明白了......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.