使用ID功能

时间:2016-06-10 14:28:03

标签: php mysql sql

在我正在制作的网络应用程序上,我有一个编辑页面,显然用户在现有产品上编辑信息,它使用PHP / MySQL。我的编辑页面 ALMOST 正是我想要的。我有一个从SQL数据库填充的下拉列表,我可以通过文本框编辑产品信息。我唯一的问题是我不知道如何通过ID随着产品的选择而改变产品。我不得不在PHP代码中手动设置静态值,我只是想知道我该怎么做这个?我认为可以使用GET但不完全确定..我会发布下面的图片和代码..谢谢。

enter image description here

当我从下拉列表中选择产品时,ID会更改为相应的产品ID

enter image description here

如您所见,我必须在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);
}

3 个答案:

答案 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的值。您应该在处理之前验证用户输入。