在我正在制作的网络应用程序上,我有一个编辑页面,显然用户在现有产品上编辑信息,它使用PHP / MySQL。我的编辑页面 ALMOST 正是我想要的。我有一个从SQL数据库填充的下拉列表,我可以通过文本框编辑产品信息。我唯一的问题是我不知道如何通过ID随着产品的选择而改变产品。我不得不在PHP代码中手动设置静态值,我只是想知道我该怎么做这个?我认为可以使用GET但不完全确定..我会发布下面的图片和代码..谢谢。
当我从下拉列表中选择产品时,ID会更改为相应的产品ID
如您所见,我必须在php中输入ID ..
所以基本上我试图让它改变产品进行编辑,因为我从下拉列表中选择它们。
希望我不会太困惑,谢谢!$conn = new mysqli('', '', '', '')
or die ('Cannot connect to db');
$result = $conn->query("select ID, NAME from PRODUCTS");
?><div align="left"><?
print "<h3>EDIT PRODUCT</h3>";
print "<strong>SELECT PRODUCT:</strong>";
print "<br><br>";
print "<form method='GET' id='frm_product'>";
print "<select name='ID' OnChange='$(\"#frm_product\").submit();'>";
while ($row = $result->fetch_assoc())
{
print "<option value='$row[ID]'>$row[NAME]</option>";
}
print "</select>";
print "</form>";
?>
<form method='POST'>
<h3>PRODUCT:</h3>
<input type='textbox' name='product' value='<?php echo $product['product'] ? >'>
<h3>BARCODE:</h3>
<input type='textbox' name='barcode' value='<?php echo $product['barcode']; ?>'>
<h3>TYPE:</h3>
<select name="type">
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<br><br>
<input type='submit' value='Save Changes' name=submitform>
</form>
<?
if (isset($_POST['submitform']))
{
$namechange = $_POST[product];
$barcodechange = $_POST[barcode];
$typechange = $_POST[type];
$sql = "UPDATE PRODUCTS SET
NAME='$namechange'
,BARCODE='$barcodechange'
,TYPE='$typechange'
WHERE ID='79'";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
}
答案 0 :(得分:0)
你可以在javascript中做这样的事情。 每次用户选择一个选项时,都会重定向到产品页面。
<select id="products" onchange="myFunction()">
<option value="Audi">Audi
<option value="BMW">BMW
<option value="Mercedes">Mercedes
<option value="Volvo">Volvo
</select>
<script>
function myFunction() {
var id = document.getElementById("products").value;
window.location.href = "/linkto/product.php?"+id;
}
</script>
如果您不想在每次使用jQuery Ajax和JSON时重新加载页面
答案 1 :(得分:0)
你不能设置: -
$ productID = $ _GET [&#39; ID&#39;];
然后将更新脚本上的79更改为$ productID?
希望我理解这个问题。
答案 2 :(得分:0)
如果我说得对,你想编辑数据库中属于特殊ID的条目,对吧?当你尝试使用$_GET
时,你必须将它添加到你的sql查询中:
[...]
$typechange = $_POST['type'];
// end of your old code
// start of new code
$id = $_GET['ID'];
// modified sql query
$sql = "UPDATE PRODUCTS SET NAME='$name', BARCODE='',TYPE='' WHERE ID='$id'";
// rest of your old code
[...]
注意:不建议在未经验证的情况下使用用户输入。用户只需操作网址中的$_GET
参数即可更改任何现有ID的值。您应该在处理之前验证用户输入。