- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 LARAVEL 和 AJAX 在数据库中插入一行,而不刷新页面,但是当我单击提交按钮时,我在浏览器控制台响应中收到以下错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'writer_id2' cannot be null.
我猜,输入数据还没有被提交并且值为空,但是我如何在 Controller 中接收响应/输入数据并同时将它插入到数据库中呢?
路线:
Route::post('writers', ['as'=>'add-writer' ,'uses'=> 'HomeController@addWriter'])->name('add-writer');
Controller :
public function addWriter(){
$i = new Input();
$dm= new DataModel();
$data= response()->json(['data'=>$i::all()]);
$encode = json_encode($data);
$decode = json_decode($encode,true);
$decoded = [];
$decodedNeeded = [];
$inc = 0;
$i2 = 0;
foreach ($decode as $k=>$v){
$inc++;
$decoded[$inc] = $v;
}
foreach($decoded[2] as $k3 =>$v3){
$i2++;
$decodedNeeded[$i2] = $v3;
}
$this->insertUser = $decodedNeeded;
$dm->addWriterMethod($decodedNeeded[1]['writer_id2'],$decodedNeeded[1]['status'],$decodedNeeded[1]['writer-skills']);
AJAX
$('#add-writer-btn').click(function(e) {
e.preventDefault();
var id = $('input[name=writer_id2]').val();
var status = $("input[name=status]").val();
var skills = $('textarea').val();
var form2 = $(this);
var url2 = form2.attr('action');
$.ajax({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
method: "POST",
ContentType: 'application/json',
url: url2,
dataType: 'json',
data: {
'id': id,
'status': status,
'skills': skills
},
success: function (data) {
alert('Added successfully!');
}
});
});
HTML
<div id="add-writer">
<b>Add writer</b>
<form action="{{url('add-writer')}}" method="POST">
<input type="hidden" name="_token" value="{{csrf_token()}}">
Writer_id2 <input type="number" id="writer-id-2" name="writer_id2">
<br>
Open to suggestions <input type="radio" value="Open to suggestions" name="status">
<br>
Searching for orders <input type="radio" value="Searching for orders" name="status">
<br><br>
Writer skills <textarea name="writer-skills"></textarea>
<input type="submit" value="Add" id="add-writer-btn" >
</form>
</div>
最佳答案
根据您的评论,当您不使用 ajax 时,它似乎有效 - 但重定向 - 但当您使用 ajax 时它不起作用。
这看起来合乎逻辑:当您不使用 ajax 时,您向服务器发送 4 个键值对:
而当你使用 ajax 时,你只发送 3 个键值对,其中只有 1 个具有正确的键:
所以至少您需要更改使用 ajax 时发送的数据。
所以这样:
data: {
'id': id,
'status': status,
'skills': skills
},
应该是:
data: {
'writer_id2': id,
'status': status,
'writer-skills': skills
},
现在您至少已经对数据部分进行了排序,但是由于缺少 _token
它仍然可能会失败,如果是这种情况,您也需要添加那个。
然而,奇怪的是,您收到的错误消息表明 token 是不必要的,这可能表示配置错误。
要简单地添加所有内容而无需手动分配变量,我建议改用它:
data: $('form').serialize(),
现在您将收到与“普通”/非 ajax 帖子完全相同的数据。
除此之外,我还建议监听表单提交事件而不是按钮单击,这样您的 javascript 也将处理任何提交,例如使用回车键。
关于php - 如何在不刷新页面的情况下使用 AJAX 和 LARAVEL 在 MySQL 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53950330/
我们知道,当使用 hibernate 对数据库进行批量更新时(即使在 HQL 中),所做的更改不会复制到存储在当前 session 中的实体。 所以我可以调用 session.refresh 来加载对
我正在做一个项目,所有的东西都保存在事件中,所以服务器需要一些时间来响应新数据。我正在使用 Fluent 等待使用 ajax 的页面,但是这个不使用任何 ajax。所以我想刷新页面检查是否有新项目,如
我有一个从 Vector 创建的 JTable。 如何刷新 JTable 以显示添加到 Vector 的新数据? 最佳答案 当 TableModel 发生更改时,您的 JTable 应该会自动更新。我
有没有办法使用下面的代码来刷新已经存在的 div id,而不是刷新时间? window.onload = startInterval; function startInterval() {
我更新了在 Shiny Server 上运行的 Shiny 应用程序使用的 DataSet.RData。但是, Shiny 的应用程序仍在旧数据上运行。我已通过浏览器历史记录清除并重新启动浏览器几次,
我的应用程序中有一个无限滚动的网格面板(ExtJs 4.2.1),类似于 this example .用户可以单击刷新按钮,然后必须使用数据库中的数据更新网格的行。我在刷新按钮处理程序中调用 stor
我不知道这三种方法中哪一种最适合我。他们都为我工作。有谁知道刷新、更新和重画之间的区别吗? 最佳答案 根据在线文档: Refresh - 重新绘制屏幕上的控件。 Call Refresh method
有什么办法吗 ICollectionView.Refresh() 或者 CollectionViewSource.GetDefaultView(args.NewValue).Refresh(); 在
这个问题已经有答案了: Updating address bar with new URL without hash or reloading the page [duplicate] (4 个回答)
我有一个 javascript 设置超时以在 10 秒后关闭 div,并且我想在 div 关闭时添加页面刷新。我正在使用的代码如下。 var container_close_sec = "1
我有一组具有以下名称的页面.... update1.php update2.php update3.php update4.php update5.php update6.php update7.ph
如果是则触发js函数。我可以使一个复选框保持选中状态,并在页面刷新时检查值并选中“checked”,并提交以下内容... checked="checked" /> 你都不记得触发js函数。 这是我的
我正在尝试刷新 php 脚本以在数据库更新时显示更新的内容。我首先构建了我的 php,然后刷新代码,然后合并它们。但是,脚本不会更新。有谁知道为什么吗? $(document).ready
当我要删除的节点扩展集合类型时,Grails中有一个错误阻止我使用removeFrom *。直接从关联中删除节点不会更新二级缓存。 A hasMany B 有什么方法可以使关联缓存手动无效或强制重新加
我正在使用 hibernate 和 mysql 来抽象一个数据库,以便在 java 驱动的网站中使用。我使用 hibernate 很好地解决了所有查询,但似乎无法弄清楚如何使用它进行更新、插入和删除,
如何通过调用 oncreateview 方法重新创建 fragment ?我有一个 fragment ,用于通过表单插入新数据,单击按钮后,我想通过删除在 EditText 中输入的数据来重新创建 f
当我从一个到另一个时,我试图刷新我的观点。我知道我应该将刷新代码放在 viewWillAppear 中,但我不知道该放什么代码。 你们能帮帮我吗? 谢谢! 最佳答案 在您看来,请调用 setNeeds
我正在开发 iPhone 应用程序并希望使用: CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serv
看到我已经创建了一个用于登录用户的脚本。而且我还添加了设置选项卡,以便用户可以编辑他们的设置!但是当我尝试它时,mysql 表中的数据发生了变化,但配置文件中显示的用户名和用户电子邮件保持不变!当我注
好的。这就是它的样子。 当我启动应用程序时,我从服务器收到的第一件事是数据: {name: "test", type: "checkbox" checked: true, } 这使得其中一个复选框
我是一名优秀的程序员,十分优秀!