saveTask()
関数はrequestJSONAJAX
を呼び出しますが、requestJSONAJAX
関数はfalse
を返します。これは私のtasklog.php
のクエリが成功したとしても発生します。それは私のデータベースを更新する。私はどこでエラーが発生したのかわかりません。それは私のtasklog.php
にあるのでしょうかJavaScriptの機能ですか、それともreturn
を間違って使っていますか?なぜ私のajax関数はfalseを返しますか?
function saveTask(){
if(requestJSONAJAX('add')){
goSuccess();
}else{
alert('error');
}
}
function requestJSONAJAX(action){
var newObj;
if(action == "add"){
newObj = { action: "add",
date: $("#date").val(),
taskName: $("#taskName").val(),
taskType: $("#taskType").val(),
duration: $("#duration").val(),
startTime: $("#startTime").val(),
endTime: $("#endTime").val()
}
}else if(action == "login"){
newObj = { action: "login",
username: $("#username").val(),
password: $("#password").val()
}
}
$.ajax({
method: "POST",
url:"../_tasklogger/classes/tasklog.php", //the page containing php script
dataType: 'json',
data: newObj,
success: function(data){
status = data;
if(status == "success"){
return true;
}else{
return false;
}
},
error: function (req, status, err) {
console.log('Something went wrong', status, err);
}
});
}
tasklog.php
<?php
require_once 'dbconfig.php';
if(empty($_POST['action'])){
return;
}
if(($_POST['action']) != "getData"){
$date= $_POST['date'];
$taskName= $_POST['taskName'];
$taskType= $_POST['taskType'];
$duration= $_POST['duration'];
$startTime= $_POST['startTime'];
$endTime= $_POST['endTime'];
}
switch($_POST['action']){
case "add":
$sql = "INSERT INTO tasks (taskDate,taskName,taskType,duration,startTime,endTime,userId) VALUES(:tdate, :tname, :ttype, :dur, :stime, :etime, 1)";
$stmt = $db_con->prepare($sql);
$stmt->bindParam(":tdate", $date);
$stmt->bindParam(":tname", $taskName);
$stmt->bindParam(":ttype", $taskType);
$stmt->bindParam(":dur", $duration);
$stmt->bindParam(":stime", $startTime);
$stmt->bindParam(":etime", $endTime);
if($stmt->execute()){
echo json_encode("success");
}else{
echo json_encode("error");
}
break;
case "getData":
break;
case "delete":
/* .... some code .... */
break;
case "update":
/* some code ...
notice there is no "break" here... and execution continues to the next case.... falls-thru */
default:
return;
}
?>
私は参照してください。今私は私のajax関数が値を返さない理由を理解しています。有益な返答をいただきありがとうございます。特にAjaxを勉強し始めたばかりの方には大きな助けになります。ありがとう! –