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。

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 回答