如何通过AJAX将ID发送到另一个文件并在这样的文件中使用ID

时间:2014-08-04 11:25:03

标签: javascript php jquery ajax

我有一个HTML文件,其中包含以下各种字段(我只会显示一个示例,因为其余字段相同):

<map name="parcerlas">
    <area shape="poly" coords="618,4,618,74,681,76,683,56,684,39,684,27,683,14,682,4" href="#" alt="Parcela 9" title="Parcela 9" onclick="getdata('9');">
</map>

使用functiong getdata()我在里面检索ID,我需要使用 AJAX 将此ID传递给另一个PHP文件并在新文件中使用它文件。我怎样才能做到这一点?

这是我的getdata()功能:

<script type="text/javascript">
    function getdata(id){
    alert(id);  
        $.ajax({
           type: "POST",
           url: "activations.php",
           data: 
           {
              id;
           }
    }
</script> 

3 个答案:

答案 0 :(得分:2)

您需要指定数据的密钥:

data: { 'id': id }

您的代码段中也存在语法错误:

function getdata(id){
    alert(id);  
    $.ajax({
        type: "POST",
        url: "activations.php",
        data: {
            'id': id // < no need for semi-colon, properties are key->value based, 'key': value
        }
    }); // << no closing bracket and semi-colon
} // << close your function

所以你可以在activations.php中访问它:

$_POST["id"]

始终检查是否存在:

if (isset($_POST["id"])) $id = $_POST["id"]; else exit;

回答OP的特定问题:

您需要打开到SQL服务器的PDO连接(使用MySQL的示例)

if (isset($_POST["id"])) $id = $_POST["id"]; else exit;

$db = new PDO('mysql:host=localhost;dbname=yourdb;charset=utf8', 
              'username', 
              'password'); // Open a connection to your database
$q = $db->prepare("SELECT * FROM achievements WHERE id=?"); // Get all achievements where id=$id
$q->execute(array($id)); // Run the query

$rows = $q->fetchAll(); // Fetch the query, associated array

echo json_encode($rows); // Convert the $rows to json, so javascript can read it

您必须将ajax请求的数据类型设置为JSON,或使用$.parseJSON(data);

自行解析数据

您可以使用返回的数据为ajax添加成功函数:

function getdata(id){
    alert(id);  
    $.ajax({
        type: "POST",
        url: "activations.php",
        data: {
            'id': id // < no need for semi-colon, properties are key->value based, 'key': value
        },

        success: function(data) {
            var achievements = $.parseJSON(data);

            // use achievements variable
        }
    }); // << no closing bracket and semi-colon
} // << close your function

答案 1 :(得分:0)

id;更改为'id':id而不使用分号(;

答案 2 :(得分:0)

你有一些拼写错误(Ajax调用没有关闭括号,不需要的分号等),但主要需要提供数据作为键值对。注意:如果引号只是一个单词(没有空格或连字符/ - 等),则只需要键名:

<script type="text/javascript">
    function getdata(id){
    alert(id);  
        $.ajax({
           type: "POST",
           url: "activations.php",
           data: 
           {
              id: id
           }
        });
    }
</script>