【发布时间】:2013-01-22 16:06:31
【问题描述】:
我对 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 函数的那一行,将 'name' 作为参数传递
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 行。
提前感谢您的帮助!
【问题讨论】:
-
你在你的 Javascript 中混合你的 PHP。这是在两台不同的机器上运行的两个不同的宇宙:客户端+服务器。您最好寻找此类模式的其他问题和示例。
-
你应该使用
mysql_real_escape_string来防止SQL注入,或者更好的是使用mysqli或PDO的参数化语句。
标签: php javascript mysql google-maps