【发布时间】:2016-10-16 15:30:02
【问题描述】:
所以我在客户端页面上收到了一个 AJAX 调用,该页面正在到达服务器并正在执行。但是,对于每次提交,我都会收到 2 个插入语句。我一生都无法弄清楚第二个插入物是从哪里来的。也许一双新的眼睛可以对此有所启发。
表单(在 .blade.php 中):
{!! Form::open(array('action'=>'PhishingController@createNewProject')) !!}
{!! Form::label('projectNameText','Project Name: ') !!}
{!! Form::text('projectNameText',null,array('name'=>'projectNameText')) !!}
{!! Form::label('projectAssigneeText','Project Assignee') !!}
{!! Form::text('projectAssigneeText',null,array('name'=>'projectAssigneeText')) !!}
{!! Form::submit('Submit',array('id'=>'submitButton')) !!}
{!! Form::close() !!}
PHP 控制器:
$projectName = $request->input('projectNameText');
$projectAssignee = $request->input('projectAssigneeText');
$date = date("Y-m-d");
$db = $this->openDatabaseDefault();
$sql = "INSERT INTO database.table(PRJ_ProjectId,PRJ_ProjectName,PRJ_ProjectAssignee,PRJ_ProjectStart,
PRJ_ProjectLastActive,PRJ_ProjectStatus,PRJ_ProjectTotalUsers,PRJ_EmailViews,PRJ_WebsiteViews,
PRJ_ProjectTotalReports) VALUES (null,'$projectName','$projectAssignee','$date','$date','Inactive',0,0,0,0);";
if(!$projects = $db->query($sql)) {
echo "Sorry, the website is experiencing technical difficulties.";
echo "Error: Our query failed to execute and here is why: \n";
echo "Query: " . $sql . "\n";
echo "Errno: " . $db->errno . "\n";
echo "Error: " . $db->error . "\n";
exit;
}
$db->close();
return redirect()->to('http://localhost:8888/generateEmails');
AJAX:
$('document').ready(function() {
$('#submitButton').click(function(e) {
$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
console.log("clicked");
var projectName = $('#projectNameText').val();
var projectAssignee = $('#projectAssigneeText').val();
$.ajax({
method: "POST",
//url: "http://localhost:8888/projects/create",
data: {projectNameText: projectName, projectAssigneeText: projectAssignee}
})
});
});
此时任何事情都值得赞赏。
【问题讨论】:
-
在 js 控制台中,您每次点击看到多少点击消息? 1 还是 2?
-
只有一次点击通过。有一次,我什至在控制器上放了一条 Else 语句,以查看 If 语句是否重复执行。它只回响一次。
-
你在ajax相关的php文件中调用
return redirect()->to('http://localhost:8888/generateEmails');?对我来说那部分似乎很奇怪 -
重定向的目标是一旦插入发生,我将其发送到另一个页面。这个过程背后的想法是用户正在创建一个发送电子邮件的“项目”。他们可以在形成新工作时选择一个项目或创建一个新项目。当他们选择创建一个新的时,他们会被重定向到这个论坛。在他们创建新项目后,我只是将他们送回上一页以继续从事新工作。本地主机只是因为它正在开发中。一旦上线,它将是一个完全合格的域。
-
你明白ajax的意思吗?通常当您调用 ajax 时,您应该期待一些简单的响应,但在您的情况下,我猜您的 ajax 调用会返回完整的 html 页面?你用那个页面做什么?
标签: mysql ajax laravel-5 laravel-blade