我有一个包含多个php函数的PHP文件。 我发送一个带有AJAX调用的Javascript变量,POST方法到该PHP文件。
现在变量IS可以在我的PHP文件中访问,但不能在我想要它的特定函数中访问...
$("#dropdown").change(function () {
var value = $("#dropdown").val();
console.log(value);
$.ajax({
type: "POST",
dataType: 'text',
url: "PhpFunctions.php",
data: {id:$("#dropdown").val()},
success: function (data) {
console.log(data);
$("div.geselecteerdVliegtuig").fadeIn("slow", function () {
console.log("Vliegtuigdetail faded in");
});
/*
$("div.vliegtuigenEnabled2").hide();
console.log("vliegtuigEnabled ID's hidden");
*/
},
error: function (err) {
alert('error: ' + err);
}
}); //END AJAX CALL`
//I CAN ACCESS DATABASE AND ID IS ACCESSIBLE HERE
//Connect to server
$connect = mysql_connect("localhost", "root", "root") or die(mysql_error());
//Connect to database
$select_db = mysql_select_db("Luchthaven") or die("Could not find database");
$id = $_POST['id'];
echo $id; //WORKS
//NEED TO ACCESS IS HERE
function GeselecteerdVliegtuig() {
makeConnection();
//Query the database
$id = $_POST['id'];
//$query = "SELECT * FROM vliegtuig WHERE vliegtuig_ID = 'PEG431';";
//echo "SELECT * FROM vliegtuig WHERE vliegtuig_ID = 'PEG431';<br/>";
$query = "SELECT * FROM vliegtuig WHERE vliegtuig_ID = '" . $id . "';";
echo "SELECT * FROM vliegtuig WHERE vliegtuig_ID = '" . $id . "';<br/>";
$fetch = mysql_query($query) or die("could not fetch data");
while ($row = mysql_fetch_assoc($fetch)) {
echo "<tr id=" . $row['vliegtuig_ID'] . ">";
echo "<td>" . $row['vliegtuig_ID'] . "</td>";
echo "<td>" . $row['maatschappij'] . "</td>";
echo "<td>" . $row['lengte'] . "</td>";
echo "<td>" . $row['breedte'] . "</td>";
echo "<td>" . $row['kilometerstand'] . "</td>";
echo "<td>" . $row['bouwjaar'] . "</td>";
echo "<td>" . $row['bereik'] . "</td>";
echo "<td>" . $row['aantalMotoren'] . "</td>";
echo "</tr>";
} // END WHILE
mysql_close(); //Make sure to close out the database connection
echo "<b>Connection closed<b><br/><br/>";
}
答案 0 :(得分:0)
您可以将$ _POST [&#39; id&#39;]变量传递给该函数GeselecteerdVliegtuig($ id)并使用GeselecteerdVliegtuig调用该函数($ _ POST [&#39; id&#39;])
答案 1 :(得分:0)
摆脱这条线:
$id = $_POST['id'];
您可能希望使用自己的功能,即使您的值不在$_POST["id"]
中。从
function GeselecteerdVliegtuig() {
到
function GeselecteerdVliegtuig($id) {
以这种方式调用您的函数:
if (isset($_POST['id'])) {
GeselecteerdVliegtuig($_POST['id']);
}
并从发布值的页面调用您的函数,确保您发布的页面存在,正常工作并做出响应。
最后,当一切正常时,改变您使用数据库的方式,因为您当前的方法由于SQL注入的可能性而存在安全漏洞。如果我访问您的页面并在控制台中执行以下操作该怎么办:
$("#dropdown").val("0'; delete from vliegtuig where '' = '");
然后触发帖子?它将删除表中的每条记录,除非您确保这些尝试失败。