0

テキスト値が格納されているJavaScript変数(名前、タイトル、説明、タイプ)をAJAXを使用してPHPスクリプトに渡そうとしています。次に、PHPスクリプトは、これらの可変テキスト値を適切なテーブル列に挿入します。

ただし、phpMyAdminでは、$。get($ .postも試しました)関数が呼び出されるたびに、新しい行が作成されますが、値はnullであることがわかります。以下のコードに構文的にエラーがありますか?私が右下でやっているように、変数をオブジェクトとして渡すことは可能ですか?私が見たすべての例で、私は見ただけname: 'smith'か、type: 1それに似たものがあるからです。

変数にテーブルの列ヘッダーと同じ名前を付けるのはおそらく悪い習慣ですが、理論的には機能するはずですよね?

jQuery AJAX

var datavar = {
            name: name,
            title: title,
            description: description,
            longitude: longitude,
            latitude: latitude,
            type: type,
        };

        $.get('school2.php', datavar, function(data) {
                $("#output").html(data);
             });

PHP

$sql="INSERT INTO markers (name, title, description, type)
VALUES
('$_GET[name]', '$_GET[title]', '$_GET[description]', '$_GET[type]')";

代わりに、次のようにオブジェクト名の上に配列ブラケットとアポストロフィを使用してオブジェクトリテラルを記述した場合:

var datavar = [{
            'name': name,
            'title': title,
            'description': description,
            'longitude': longitude,
            'latitude': latitude,
            'type': type,
            }];

データベーステーブルで、nullの代わりにデフォルトのテキスト値「name」、「title」、「description」などを取得していることがわかります。

4

1 に答える 1

1

$_GET[x]正しくない場合は、である必要があります$_GET['x']。これを試して:

$sql="INSERT INTO markers (name, title, description, type)
VALUES
('".$_GET['name']."', '".$_GET['title']."', '".$_GET['description']."', '".$_GET['type']."')";

また、補足として、 SQLインジェクションを防ぐために、データベース入力をサニタイズすることをお勧めします。

于 2013-03-25T01:09:38.283 に答える