1

JQuery AJAX を使用して、ユーザーがポップオーバー ボックスのフォームに情報を入力できるようにしようとしています。その後、情報が MySQL データベースに追加されます。ただし、何らかの理由で、JQuery AJAX 関数 ($.post() と $.ajax() の両方を試しました) を使用してデータを POST すると、POST されません。代わりに、POSTしようとしたすべてのフィールドに対して「未定義のインデックス」というエラーメッセージが表示されます(POST先のURLであるprocessNewAssignments.phpに移動すると)。私は何を間違っていますか?

ユーザーがクリックして情報を投稿したときの私の JQuery AJAX 関数呼び出しは次のとおりです。

$.ajax({url: "[THIS CONTAINS THE REST OF THE URL]/processNewAssignments.php",
                    type: 'POST',
                    data: {max_grade: maxGradeValue, title: taskNameValue, due: dueDateValue}});

または私も試しました:

$.post("[THIS CONTAINS THE REST OF THE URL]/processNewAssignments.php", 
        {max_grade: maxGradeValue, title: taskNameValue, due: dueDateValue});

processNewAssignments.php (データが POST される URL) の私のコードは次のとおりです。

<?php session_start(); ?>

<!DOCTYPE html>
<html lang="en">
<head>
<title>Process Assignments</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<?php 

    $maxgrade = $_POST["max_grade"];
    $title = $_POST["title"];
    $due = $_POST["due"];
    $classID = $_SESSION["classID"];


    echo "hello!";
    echo $title . $classID . $due . $maxgrade;

    require("db.php");
    $query = "INSERT INTO assignments (title, assignmentID, classID, deadline, max_grade) VALUES ('$title', DEFAULT, '$classID', '$due', '$maxgrade')";
    $result = mysql_query($query, $db);

?>

4

2 に答える 2

2

代わりに、POSTしようとしたすべてのフィールドに対して「未定義のインデックス」というエラーメッセージが表示されます(POST先のURLであるprocessNewAssignments.phpに移動すると)。私は何を間違っていますか?

私の理解が正しければ、 2 番目の GET リクエストを送信する、つまりアドレス バーに URL を入力して、投稿された変数を見つけようとしています。

これが実際に当てはまる場合、undefined index何もPOSTしていないため、$_POST配列は未定義であるため、取得する必要があります。

ajax POST リクエストをテストするには、Dev Tools (Chrome では F12) を使用し、タブを選択して、Network作成された投稿リクエストをクリックする必要があります。

リクエストが成功したかどうか (200 レスポンス コード)、およびレスポンスの内容を確認できます。

于 2013-05-07T00:42:39.847 に答える