首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

保留使用旧数据在laravel POST之后使用javascript生成的html

在 Laravel 中,可以通过使用 JavaScript 生成 HTML 的方式来保留并使用旧数据。一种常见的场景是,当用户在表单提交后发生错误时,我们希望保留用户之前输入的数据,以便他们可以进行必要的更正。下面是一个完善且全面的答案:

保留使用旧数据在 Laravel POST 之后使用 JavaScript 生成的 HTML 的步骤如下:

  1. 在 Laravel 的视图文件中,使用 Blade 模板引擎输出 HTML 表单,并将需要保留的旧数据填充到相应的表单字段中。例如,可以使用 old 函数来获取之前用户提交的数据,并将其填充到对应的表单字段中。示例代码如下:
代码语言:txt
复制
<input type="text" name="username" value="{{ old('username') }}">
  1. 在表单提交后,如果发生验证错误,我们可以在控制器中将用户重定向回表单页面,并将旧数据以及错误信息一同传递。示例代码如下:
代码语言:txt
复制
public function store(Request $request)
{
    $validatedData = $request->validate([
        'username' => 'required',
        // 其他字段的验证规则
    ]);

    // 如果验证失败,将用户重定向回表单页面,并携带旧数据和错误信息
    return redirect()->back()->withInput();
}
  1. 在表单页面的 JavaScript 代码中,可以根据需要获取重定向时传递的旧数据,并使用 JavaScript 生成 HTML 元素来显示这些数据。示例代码如下:
代码语言:txt
复制
<script>
    // 获取重定向时传递的旧数据
    var oldData = {!! json_encode(old()) !!};

    // 根据旧数据生成 HTML 元素来显示
    for (var key in oldData) {
        var value = oldData[key];
        var input = document.createElement('input');
        input.type = 'text';
        input.name = key;
        input.value = value;

        // 将生成的 HTML 元素添加到相应的位置
        document.getElementById('form').appendChild(input);
    }
</script>

以上代码中的 old() 函数会返回一个关联数组,包含之前提交的所有字段和对应的值。在 JavaScript 中,我们可以通过将其转换为 JSON 格式并赋值给 oldData 变量来获取这些旧数据。

需要注意的是,上述代码只是一个示例,实际场景可能需要根据具体的业务需求进行相应的调整。另外,对于较为复杂的表单,可能需要使用 JavaScript 框架(如 Vue.js 或 React)来更方便地管理和生成 HTML 元素。

对于 Laravel 的相关概念、分类、优势、应用场景以及推荐的腾讯云相关产品和产品介绍链接地址,可以参考腾讯云文档中关于 Laravel 的相关内容:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 表单方法伪造与 CSRF 攻击防护

1、表单方法伪造 有时候,我们可能需要手动定义发送表单数据使用 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他方式,则需要自己来定义实现。...采用是 GET 请求,对于其他请求方式要怎么实现呢,一种方法是通过 HTML 表单元素 method 属性,另一种方法是 JavaScript 脚本中发起 HTTP 请求。...对于 HTML 表单属性而言,有一个问题是 HTML 表单仅支持 GET 和 POST 请求,如果要使用其他请求方式怎么办?...避免跨站请求伪造攻击措施就是对写入操作采用非 GET 方式请求,同时在请求数据中添加校验 Token 字段,Laravel 也是这么做,这个 Token 值会在渲染表单页面时通过 Session 生成...当然,如果你是 JavaScript 脚本中执行 HTTP 请求,也可以很方便传递这个 Token 值执行写入操作,首先需要在 HTML 标签内新增一个 元素来存储 Token

8.7K40

Laravel5.8学习日常之分页

传统分页 平常代码撰写中,分页是一个比较头疼一件事,总结一下,现在分页可以分为两种分页大类,分别是后端分页及前端分页。...前端分页就是后台将数据库中全部或部分数据传输至前台,前台JavaScript语言进行数据截断分别展示,优点:省去了与后台交互,减少对数据压力;缺点:要是数据量比较庞大,就会造成浏览器端处理数据延时大...后端分页分为页面有刷新请求及无刷新请求(Ajax请求),就是前台采用按钮事件或者Ajax请求方式,告知后台进行分页,同时后台进行计算偏移量及当前页码,进行对应页码数据请求,之后后台查询好数据进行向前台数据进行传递...Laravel分页 Laravel分页是典型后台分页,不过它将分页进行了封装,只需要调用它封装好数据就可以实现分页。 数据分页有几种方法。...Laravel 分页器将 查询构造器 和 Eloquent ORM 结合起来,提供了方便、易用数据库结果集分页。通过分页器生成 HTML 兼容 Bootstrap CSS 框架。

2.2K10
  • 详解将数据Laravel传送到vue四种方式

    在过去两三年里,我一直研究同时使用 Vue 和 Laravel 项目,每个项目开发开始阶段,我必须问自己 “我将如何将数据Laravel 传递到 Vue ?”。...使用上面的任何一种方法,您都可以将 JSON 编码数据回送给您应用程序或其组件。 然而,最大缺点是可扩展性。您 JavaScript 需要直接暴露在模板文件中,以便引擎可以呈现您数据。...它使我们通过 api 拉入路由也可以包含应用程序常规网络路由通常会使用所有会话标量和令牌。...当使用 axios 或者其他异步 JavaScript http 调用时候,我们可以在后端使 Auth::user () 或者其他验证技术,而默认 api 就无法做到这些。...运行 php artisan jwt:secret 以生成签名应用程序令牌所需要密钥。 完成之后,你需要决定哪些路由将受 JWT 保护并针对 JWT 进行身份验证。

    8.1K31

    Laravel中实现使用AJAX动态刷新部分页面

    要实现这样功能,我们基本思路如下(MVC Pattern): 使用AJAX POST call来调用Controller函数 Controller返回我们所需View中HTML代码片段 调用AJAX...由于 LaravelMiddleware会自动检查CSRF,所以如果使用POST,DELETE等方法时候我们需要全局设置一下AJAXheader,这样每次发送AJAX时候,都会自动发送相应...posturl我们填laravelroute(稍后routes中我们还会叙述) callback function中数据html是由controller函数中使用某个view所返回html...,因为我们需要返回本来就是html代码,而调用view()时候,Laravel已经帮我们生成好了。...以上这篇Laravel中实现使用AJAX动态刷新部分页面就是小编分享给大家全部内容了,希望能给大家一个参考。

    11.2K31

    Laravel框架下载,安装及路由操作图文详解

    这里我们要注意是,我把laravel解压到了一个名为PHPprimary文件夹里,你们如果是直接解压到htdocs里则只需127.0.0.1:8000后面输入/laravel/public,若正常显示图片里...目录四:database 数据库操作相关文件(数据库迁移和数据填充) ? 目录五:public 前端控制器和资源相关文件(图片、JavaScript、CSS) ?...这里要注意是,post不能直接输出到页面上,否则会报错 多请求路由使用方法 1.match自定义获取方式 Route::match(['get','post'],'m',function(){...composer.lock 扩展包列表,确保这个应用副本使用相同版本扩展包 config 应用程序配置文件 database 数据库操作相关文件(数据库迁移和数据填充) node_modules... “mod_rewrite” ) storage 编译后视图、基于会话、文件缓存和其它框架生成文件 storage/app 目录可用于存储应用程序使用任何文件 storage/framework

    4.6K51

    Blade 模板引擎入门篇

    1、Blade 概述 与视图文件紧密关联就是模板代码,我们视图文件中通过模板代码和 HTML 代码结合实现视图渲染。...注:不同于其他基于 Symfony PHP 框架,Laravel 没有使用 Twig 模板引擎,不过你想要使用的话,可以借助 TwigBridge 扩展包来实现。...> 但是某些情况下不能对变量中 HTML 字符进行转义,比如我们表单通过富文本编辑器编辑后提交表单数据,这种场景就需要通过 {!! !!} 来包裹待渲染数据了: {!!...注:对于富文本数据 XSS 攻击防护,可以参考这篇教程:https://xueyuanjun.com/post/9476.html 最后,关于数据变量渲染,我们还要注意是,很多前端框架也是通过 {{}...} 来输出 JavaScript 变量数据,比如 Laravel 好基友 Vue.js 就是,对于这种情况,我们需要在渲染前端 JavaScript 变量 {{}} 前面加上 @ 前缀,这样,Blade

    5.9K61

    JSON Web Token(JWT)教程:一个基于Laravel和AngularJS例子

    当然,如果我们想避免使用JWE额外开销,另一个选择是将敏感信息保留在我们数据库中,并且需要访问敏感数据时,使用我们token进行额外API调用。 为什么需要Web Tokens?...Laravel后端示例 我们将使用Laravel来处理用户注册,将用户数据保留数据库,并提供一些需要认证受限数据,以供Angular应用程序使用。...有关此过程任何问题,请参阅官方Laravel文档。 我们创建了基本Laravel 5应用程序之后,我们需要设置我们Homestead.yaml,它将为我们本地环境配置文件夹映射和域配置。...我们可以使用php artisan jwt:generate命令生成该密钥。它将被放置我们config/jwt.php文件中。然而,在生产环境中,我们不想在配置文件中使用我们密码或API密钥。...创建一个POST请求时,我们将尝试创建一个新用户并将其保存到数据库。

    30.6K10

    将博客主题替换成 Clean Blog

    public 目录下新建 js 子目录用于存放编译打包后 JavaScript 脚本文件。...js 文件变成最终可以引入到 HTML 文档文件,还需要在 blog 根目录下新建 webpack.mix.js,通过 Laravel Mix 来编译打包这些预处理 js 文件: const mix... resources/views 目录下新建 header.php,在其中包含 HTML 部分和 Clean Blog 主题顶部导航: <!.../v1.0/practice/blog/resources/views/post.php 由于我们视图模板中引入了专辑封面和文章封面图,需要在数据库中新增对应字段 image: ?...7、演示最终效果 完成视图模板代码重构后,就可以浏览器中访问替换主题后博客首页了: ? ? ? 下篇教程,我们将演示联系表单页面构建以及将表单数据传递给后端进行验证和存储。

    73320

    Laravel5.1框架自带权限控制系统 ACL用法分析

    之后就给使用Laravel提供Authorization来定义权限控制了,打开 /app/Providers/AuthServiceProvider.php 文件, boot() 中添加代码: public...填充数据 为方便起见,这里使用 tinker 命令行工具来添加几条测试数据: php artisan tinker 之后进入命令行,依次输入下列命令: // 改变命名空间位置,避免下面每次都要输入 App...之后生成了两个用户,分别给他们分配了 editor 和 admin 角色,即:ID 1 用户拥有 editor 角色,因此只有 edit-post 权限,而 ID 2 用户拥有 admin 角色,因此具有...</html 视图中我们通过 Laravel 提供 @can 方法来判断用户是否具有某权限。...《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架PHP程序设计有所帮助。

    54561

    Laravel 5.0 之 表单验证类 (Form Requests)

    本文译自 Matt Stauffer 系列文章. ---- 让人头痛表单验证 只要你曾经使用 Laravel 框架过程中试图找到有关用户输入验证最佳实践, 你就应该了解这是一个争论最多并且几乎没有达成共识的话题...我们可以控制器中进行验证, 可以单独一个服务层进行验证, 可以模型中进行验证, 当然还可以 Javascript 中进行验证 (这只是一个玩笑, 谁都知道不能只依赖于客户端验证).... Laravel 中执行数据检查和验证新手段....Form Requests 使表单验证不再让人头痛 Laravel 5.0 带来了 Form Requests, 这是一种特殊类型, 用于提交表单时进行数据检查和验证....Laravel 会在解析 POST 路由之前自动把用户输入信息传递给相应表单请求, 因此我们所有验证逻辑都可以移到独立于控制器和模型之外 FormRequest 对象中.

    3.8K50

    Laravel5.2之Redis保存页面浏览量

    说明:本文主要讲述使用Redis作为缓存加快页面访问速度。同时,会将开发过程中一些截图和代码黏上去,提高阅读效率。...开发环境:Laravel5.1+MAMP+PHP7+MySQL5.5 Redis依赖包安装与配置 Redis就和MySQL一样,都是数据库,只不过MySQL是磁盘数据库,数据存储磁盘里,而Redis是内存数据库...推荐Laravel开发插件三件套,提高开发效率,可以参考之前写Laravel5.2之Seeder填充数据小技巧: composer require barryvdh/laravel-debugbar...,极端情况300秒内都是旧数据,而缓存里已经有了29个新增访问量 //实际上也可以这样做:缓存post时候,可以把view_count单独拿出来存入键值里如single_view_count...还推荐一个Redis客户端:Redis Desktop Manager,可以客户端里看下各个键值: 页面视图中可以利用上面推荐barryvdh/laravel-debugbar插件观察下请求过程产生数据

    8.8K41

    结合 Bootstrap + Vue 组件实现 Laravel 异步分页功能

    日常开发中,对数据库查询结果进行分页也是一个非常常见需求,我们可以基于之前介绍查询方法和前端 HTML 视图实现分页功能,不过从 Laravel 5.3 开始,Laravel 框架就已经为我们提供了非常完整分页解决方案...不管你使用查询构建器还是 Eloquent 模型类,都可以一分钟内完成分页功能,Laravel 还为我们提供了丰富自定义支持,不管是后端分页器,前端分页链接,还是整个分页视图,都可以按需进行定制化开发...,以便在 JavaScript 代码中使用)。...这样,就可以组件中通过对应属性名访问属性值了, JavaScript 代码中使用需要加上 this. 前缀。...通过列表渲染显示分页数据和链接 设置好 paginator 和 elements 属性值之后,就可以模板中通过列表渲染和动态绑定显示文章信息和分页信息了,具体可以查看 template 标签中代码

    7.4K20

    Laravel系列3.2】路由:指哪儿打哪儿

    而且个人使用之后感觉这种方式也很爽。 基本路由配置 简单地介绍一下基本路由配置,我们可以指定路由请求,比如使用 GET 还是 POST 。...从这里也能够看出,Laravel 路由对于数据安全好处。大部分情况下,我们使用接口都会以 POST 为主,特别是数据提交接口。...这种情况下,如果处理得当一般也不会有什么问题,但有可能也会造成意外数据泄露,比如说万一我们使用 _REQUEST 来接收数据 Laravel 中路由处理时候,就会将这个问题给避免了。...如果需要使用 header() 方法的话,直接使用这个生成链接字符串就可以了。 路由组配置 什么是路由组呢?...接下来,我们以 http://laravel8/temp/ 这个链接为例,使用调试工具看一下路由是如何调用分派。 首先当然还是请求封装,也就是我们上篇文章中 Request 对象生成

    11.8K10

    基于 Laravel + Vue 组件实现文件异步上传

    > 我们会在表单控件中使用 Bootstrap 样式,所以引入了 css/app.css 文件,同时为 HTML 元素设置相应 class 属性,将文件上传控件拆分成一个独立 Vue 组件,并通过...请求时候(axios 是一个功能强大基于 Promise JavaScript HTTP 客户端,推荐使用它来替代传统 ajax 或 XMLHttpRequest API 发送 HTTP 请求...编写文件上传 Vue 组件 完成视图模板文件编写之后,接下来就可以编写文件上传 Vue 组件了。...Vue 组件代码了,既有 HTML 模板代码,又有 CSS 和 JavaScript 代码,代码逻辑很简单,就是监听到文件上传控件有变动时调用 uploadFile 方法,通过 axios 发送包含文件信息.../components/FileUploadComponent.vue').default);,否则在使用时候会报错。 这样 form.blade.php 视图中就可以正常引入该组件了。

    2.6K20

    LaravelBlade模板引擎示例详解

    ; }); 显示数据 你可以使用花括号 { 来视图中显示传递到视图中变量,例如,你定义了下面的路由: Route::get('greeting', function () { return view...The current UNIX timestamp is {{ time() }} 由于很多 JavaScript 框架都使用花括号来表明所提供表达式应该被显示浏览器中。...如果你不想你数据被转义,你可以使用下面的语法,但是要注意,小心被攻击: Hello, {!! $name !!}...-- Form Contents --> 尽管子视图会自动继承父视图中所有数据变量,你也可以直接传递一个数组变量来添加额外变量到子视图( Blade 视图中避免使用...> 在你更新 Blade 指令逻辑之后,你应该删除所有已缓存 Blade 视图,你可以使用 view:clear Artisan 命令来清除。

    1.1K20

    Laravel5.8使用LayUI实现批量删除

    路由设置 Laravel比较人性化原因之一就是路由自定义化程度高,可以说开发是这个流程: 路由设置->前台数据获取请求后台->后台控制器获取参数响应并回馈前台 这里我是用是JSON传值,还是比较人性化...//数据类型 请求方式 及 CSRF认证 {'str':str, '_method':'post', '_token':'{{ csrf_token() }}'},...,若存在则获取元素对应下标并且做出splice删除操作,以此类推); 点击按钮时,将数组转换为string字符串类型之后采用Ajax方式传至后台控制器; 后台控制器进行操作返回状态值; 前台获取状态值进行反馈用户...Controller后台控制器 在这里可以注意到Laravel可以直接删除字符串形式元素,使用了in($str)方式。...本文链接:https://www.debuginn.cn/2196.html 本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接

    1.2K10

    Laravel5.2之Demo1——URL生成和存储

    引言: 本文基于Laravel框架做一个URL生成和存储demo,主要目的是学习使用Laravel框架。...当然,也可以不用这个Form类,直接写表单html代码也行。这里url表示提交表单时路由,方法为post。...在这里使用laravelcollective/html这个组件,顺便了解下怎么laravel中安装组件。 这里书中使用laravel4.*自带Form类,但laravel5....项目根目录执行Artisan命令php artisan make:model Link后,生成app/Link.php文件,这个model通过配置用来管理MySQL中links数据表,Link这个...6、从数据库中取出URL并且重定向 最后根据生成URL获取其hash部分,根据hash值从links数据表取出对应URL为了重定向,这里英文原文也是路由中写逻辑,这里也路由里写逻辑: Route

    24.1K31
    领券