2016-06-15 1 views
0

これで、サーバーに到達して実行中のクライアント側のページでAJAX呼び出しが発生しました。しかし、私は2つの挿入ステートメントを取得しています。私はこの二番目のインサートが来ている私の人生を理解することができません。たぶん、新しい目のセットがその上に光を当てるかもしれません。 (.blade.phpで)なぜ私のSQL Insert Duplicatingですか?

フォーム:

{!! Form::open(array('action'=>'[email protected]')) !!} 
{!! 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} 
     }) 
    }); 
}); 

何がこの時点で理解されます。

+0

あなたはクリックごとにどのように多くのクリックされたメッセージが表示されています:

は、AJAXを改訂しますか? 1または2? – Shadow

+0

クリックしたものは1つだけです。ある時点で、コントローラにElseステートメントを入れて、Ifステートメントが二重に実行されているかどうかを確認しました。それは一度だけエコーアウトします。 – Trojan404

+0

あなたは 'return redirect() - >を(' http:// localhost:8888/generateEmails ');と呼んでいます、ajax関連のPHPファイルですか?私にはその部分が変わっているようです – Alex

答えて

0

概念的なアヤックスの変更のためにアレックスに感謝します。私のメソッドがリダイレクトされる前に再び起動するPHPリダイレクトがあったことがわかります。理由はわかりませんが、リダイレクトをAJAXの成功関数にプッシュすると、重複した挿入が修正されました。 JSコンソールで

$.ajax({ 
    method: "POST", 
    data: {projectNameText: projectName, projectAssigneeText: projectAssignee}, 
    success: function() { 
     window.location.replace("http://localhost:8888/generateEmails"); 
    }, 
    error: function(xhr,status,error) { 
     alert('Unable to create new project.'); 
     console.log("xhr: " + xhr); 
     console.log('status: ' + status); 
     console.log('error: ' + error); 
    } 
}); 
関連する問題