0

我对 PHP 和 Javascript 很陌生。我正在尝试从谷歌地图 API 标记中获取变量,并可以选择从 MySQL 数据库中删除标记及其信息。没有生成错误,但是没有删除该行。我想问题出在POST上。以下是我与此问题相关的代码:

var html = "<b>" + name + "</b> <br/>" + location + "<br/> <br/> <input type='button' value='Get Directions from your Current Position' onclick=getDirections()/> <br> <input type='button' name = 'remove' value='Remove Pointer' onclick=removePointer("+name+")/>";

那是我调用 removePointer 函数的行,将“名称”作为参数传递

function removePointer(name){
    var nameSend = name;
    $.post("index.php", {variableName: nameSend});
    <?php
        $mysql_host = "xxxx";
        $mysql_database = "xxxx";
        $mysql_user = "xxxx";
        $mysql_password = "xxxx";

        $link = mysql_connect($mysql_host, $mysql_user, $mysql_password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($mysql_database) or die(mysql_error());

        $removeName = $_POST['variableName'];
        mysql_query(("DELETE FROM markers WHERE Name='" . $removeName . "'"),$link) or die ("Markers Table Error: " . mysql_error());
    ?>
}

那是 removePointer 函数,它应该在其中获取 javascript 变量、发布它,以及一个 PHP 块来获取发布并相应地删除 MySQL 行。

提前感谢您的帮助!

4

2 回答 2

0

在您的情况下,Javascript 将在用户的浏览器中运行,而 PHP 将在服务器上运行(需要能够与数据库服务器通信)。也就是说,您不能将 PHP 嵌入到 Javascript 函数中并期望 PHP 运行 - Web 浏览器不执行 PHP。此外,您永远不想将任何敏感信息放入将在浏览器中运行的 Javascript(例如 MySQL 凭据),因为任何加载该 Javascript 的人都可以看到它。

您将需要创建一个 Javascript 将与之通信的服务器端 PHP 脚本。Javascript 可以向 PHP 脚本发出AJAX请求,发布您希望 PHP 对其执行操作的数据。在这种情况下,removePointer() 函数可以将标记名称发布到 PHP 脚本,然后将其从数据库中删除。

为了让生活更轻松,您可以考虑使用jQuery等 Javascript 库,它可以极大地简化Ajax 请求

于 2013-01-22T16:17:33.010 回答
0

您不能只发布到您的 index.php 页面。创建一个新的“del.php”,将您的 php 代码放在那里,然后发布到该页面:

索引.php

function removePointer(name){
  var nameSend = name;
  $.post("del.php", {variableName: nameSend}); 
}

删除文件

<?php
    $mysql_host = "xxxx";
    $mysql_database = "xxxx";
    $mysql_user = "xxxx";
    $mysql_password = "xxxx";

    $link = mysql_connect($mysql_host, $mysql_user, $mysql_password);
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db($mysql_database) or die(mysql_error());

    $removeName = $_POST['variableName'];
    mysql_query(("DELETE FROM markers WHERE Name='" . $removeName . "'"),$link) or die ("Markers Table Error: " . mysql_error());
?>

当然,我不是 php 专家,这肯定不是进行 ajax 请求的最佳方式,但我希望你能更好地了解 ajax 的概念......

于 2013-01-22T16:17:48.253 回答