私は、ajaxを使ってPHPからsaveTaskDB
関数を呼び出そうとしています。それは成功として返されますが、データベースは更新されません。私はそれにsaveTaskDB
ファンクションコードを持つ'create.php'
を作成しようとしました。ファイルを「直接」と呼ぶと、成功として返され、さらにデータベースが更新されます。なぜ私は私のPHPで特定の関数を呼び出すことができないと私はまた、どのように私のPHP関数を単一のPHPファイルに格納し、AJAXを介して呼び出すことを知りたいのか分からない。私を助けることができる誰かに感謝します。ajaxを使って特定のphp関数を呼び出せません
私はこの
tasklogger.jsのように私のコードがあります。
function saveTask(){
$.ajax({
method: "POST",
url:"../_tasklogger/classes/tasklog.php", //the page containing php script
data:{ action: 'add',
date: $("#date").val(),
taskName: $("#taskName").val(),
taskType: $("#taskType").val(),
duration: $("#duration").val(),
startTime: $("#startTime").val(),
endTime: $("#endTime").val()
},
success: function(data){
goSuccess();
}
});
}
tasklog.php
require_once 'dbconfig.php';
if (isset($_POST['action']) && !empty($_POST['action'])){
$date= $_POST['date'];
$taskName= $_POST['taskName'];
$taskType= $_POST['taskType'];
$duration= $_POST['duration'];
$startTime= $_POST['startTime'];
$endTime= $_POST['endTime'];
saveTaskDB($date, $taskName, $taskType, $duration, $startTime, $endTime);
}
function saveTaskDB($date, $taskName, $taskType, $duration, $startTime, $endTime){
try{
$stmt = $db_con->prepare("INSERT INTO tasks (TaskDate,TaskName,TaskType,Duration,StartTime,EndTime) VALUES(:tdate, :tname, :ttype, :dur, :stime, :etime)");
$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 'alert("success")';
}else{
echo 'alert("wrong")';
}
}
catch(PDOException $e){
echo $e->getMessage();
}
}
create.phpを
require 'dbconfig.php';
$date= $_POST['date'];
$taskName= $_POST['taskName'];
$taskType= $_POST['taskType'];
$duration= $_POST['duration'];
$startTime= $_POST['startTime'];
$endTime= $_POST['endTime'];
try{
$stmt = $db_con->prepare("INSERT INTO tasks (TaskDate,TaskName,TaskType,Duration,StartTime,EndTime) VALUES(:tdate, :tname, :ttype, :dur, :stime, :etime)");
$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()){
return true;
}else{
return false;
}
}
catch(PDOException $e){
echo $e->getMessage();
}
:POST中に」dataString''を? –
'dateType: 'dataString'とは何ですか? –
私はまだphpとajaxには新しいです。私は 'dataType:json'をデータ型として使ってみましたが、有効なjsonを内部に渡しましたが、データベースは更新されません。オンラインでフォーラムを読むと、私は 'dataType:dataString'を見つけました。魔法のように私のクエリは 'create.php'を直接呼び出していましたがtasklog.phpではなく、 –