gpt4 book ai didi

javascript - PHP页面不更新MySQL数据

转载 作者:行者123 更新时间:2023-11-29 21:45:32 24 4
gpt4 key购买 nike

我似乎无法找到我在任何线程上遇到的问题的解决方案。我有 2 个页面,一个 HTML 页面,然后一个 PHP 页面。 HTML 页面简单地从数据库中的列填充下拉列表。这是它的要点:

        <head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#select_site_form').submit(function(event) {
$.ajax({
type: "POST",
url: 'project_testing.php',
data: { site_name: $("#site_name_id").val() },
});
}); // end of submit function
}); //end of document.ready function
</script>
</head>

<body>
<form method="POST" action="project_testing.php" id="select_site_form">
<?php
$username = "root";
$password = "";
$hostname = "localhost";

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("database_name", $dbhandle)
or die("Could not select database");


$sql = "SELECT site_name FROM table_name where site_name != ''";
$result = mysql_query($sql);

echo "Please select which site's information you would like to update.<br><br>";
echo "<select name='site_name' id='site_name_id'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['site_name'] . "'>" . $row['site_name'] . "</option>";
}
echo "</select>";
?>
<input type="submit" name="submit" value="Select">
</form>
</body>

然后,PHP 会回显 HTML 表单,并用站点信息填充文本框。问题是,当我单击提交按钮时,信息是数据库已删除,但网站的名称字段除外:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#update_info_form').submit(function(event) {
var region = document.getElementById('region').value;
$sql="UPDATE `internal_tracker` SET `region`= document.getElementsByName('region').value";
}); // end of submit function
}); //end of document.ready function
</script>
</head>

<?php

$username = "root";
$password = "";
$hostname = "localhost";

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("database_name",$dbhandle)
or die("Could not select database");

$site_name = $_POST["site_name"];

echo "Updating site information for &nbsp;&nbsp;"; echo $site_name;

//Retrieve data from database
$sql="SELECT * FROM table_name WHERE site_name='$site_name'";
$result=mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
echo '<form method="POST" action="project_testing.php" id="update_info_form">
<table>
<tr>
<td><h3>Property Data</h3></td>
</tr>
<tr>
<tr>
<td> Region: </td><td> <input type="text" "name="region" id="region" value="'.$row['region'].'"></td>
</tr>
</tr>
<tr>
<td> Site Name: </td><td> <input type="text" name="site_name" value="'.$row['site_name'].'"></td>
</tr>
<tr>
<td> Street Address: </td><td> <input type="text" name="street_address" value="'.$row['street_address'].'"></td>
</tr>
<tr>
<td> City/State/Zip: </td><td> <input type="text" name="city_state_zip" value="'.$row['csz'].'"></td>
</tr>
<tr>
<td> Priority Ranking: </td><td> <input type="text" name="priority_ranking" value="'.$row['priority_ranking'].'"></td>
</tr>
</table>

<input type="submit" name="submit" value="Update">';
}

if(isset($_POST['submit'])) {
$query = "UPDATE table_name SET region='".addslashes($_POST['region'])."', street_address='".addslashes($_POST['street_address'])."', csz='".addslashes($_POST['csz'])."', priority_ranking='".addslashes($_POST['priority_ranking'])."' WHERE site_name='".addslashes($_POST['site_name'])."'";
mysql_query($query);
}

mysql_close();
?>

任何人都可以看到我做错了什么或者我是否缺少一些语法?我已经被这个问题困扰了一段时间了。

最佳答案

将 UPDATE 查询放在 SELECT 查询之前。您正在根据数据库中的信息构建表单,然后更新数据库。

按照评论者所说的去做,并防止 SQL injection .

关于javascript - PHP页面不更新MySQL数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com