我正在制作一个简单的库存系统,以便跟踪设备进出我们的门。库存存储在MYSQL中,其表格如下所示:id name storage used location_storage location
当我使用PHP创建一个简单的表单时,这一切都很有趣,所以它与来自服务器的内容保持动态。我可以毫无问题地更新所有值。
但是为了简单起见,我正在寻找一个带有按钮的下拉菜单,它可以在表单中创建/显示输入字段。原因是在即将到来的时间里,我的桌子中会有很多行。由于早期的表单来自服务器信息,我还需要脚本是动态的。现在,我一直在考虑应该做些什么。
截至目前,我的代码代码如下:
“静态”PHP表单:
<form action="<?php $_PHP_SELF ?>" method="POST">
<?php
//conn stuff
$sql = "SELECT id, name, storage, used, location FROM inventory";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo ' ' . $row["id"]. ' ' . $row["name"]. '<input type="text" name="newamount[' . $row["id"]. ']" />';
echo '<br>';
}
} else {
echo "0 results";
}
$conn->close();
?>
<input type="submit" name="checkout" value="Check out"/>
<input type="submit" name="checkin" value="Check in"/>
</form>
签入PHP(除了更改+和减号外,签出相同):
if(isset($_POST['sjekkinn'])){
//conn stuff
mysql_select_db( 'experimental' );
$newamount = $_POST['newamount'];
foreach($newamount as $key => $value){
$sql = "UPDATE inventory ". "SET storage = (storage + $value), used = (used - $value)". "WHERE ID = $key " ;
if (empty($value)) continue;
$retval = mysql_query( $sql, $conn );}
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully!<br>";
header("Refresh:1");
mysql_close($conn);
}
这些都很有效,但我想使用类似下面的代码来进行更整洁的设置......有人有任何建议吗?
从MYSQL生成的下拉列表:
<form action="#" method="post">
<select name="selectinventory">
<?php
//conn stuff
$sql = "SELECT * FROM inventory";
$result = $conn->query($sql);
while ($row = $result->fetch_array()){
echo '<option value="' . $row["id"]. '">' . $row['name'] . '</option>';
}
?>
</select>
<input type="submit" name="submit" value="Add line">
</form>
答案 0 :(得分:0)
好的,所以我找到了自己的解决方案。
当我在问题的最后一个代码框中向您展示时,我最终使用了我填充表格的下拉列表。我想到的是我可以简单地使用jQuery show / hide函数。
我做的是制作一个脚本,告诉(在“可读”中)div'x'显示并在选择选项'x'并单击按钮时移动。我最后会告诉你我的完整代码。
这样我可以让我的输入字段在我的表格中创建一个div(与填充下拉列表相同),这样我就可以更轻松地管理它们(可能更容易 - 但如果不是坏了,不要修理它。这些是在表单之外创建的。当我单击前面提到的按钮时,div将在表单内移动。我选择的下一个将结束前一个,而不是仅以表顺序显示。
随时欢呼任何问题!
以下是完整的代码:
<form action="<?php $_PHP_SELF ?>" method="post">
<select name="selectinventory" id="selectinventory">
<option selected="selected">Choose one</option>
<?php
//conn stuff
$sql = "SELECT id, name FROM inventory";
$result = $conn->query($sql);
$sql = "SELECT * FROM inventory";
$result = $conn->query($sql);
while ($row = $result->fetch_array()){
echo '<option value="' . $row["id"]. '">' . $row['name'] . '</option>';
}?>
</select>
<div id="btn">Add line</div>
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#btn").click(function(){
$("#" + $("#selectinventory").val()).show();
$("#" + $("#selectinventory").val()).appendTo($(".selecteditems"));
});
});
</script>
<?php
//conn stuff
$sql = "SELECT id, name FROM inventory";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo '<div style="display:none" id="' . $row["id"]. '"> ' . $row["id"]. ' ' . $row["name"]. '<input type="text" name="newamount[' . $row["id"]. ']" /><br></div>
';
}
} else {
echo "0 results";
}
$conn->close();
?>
<form action="<?php $_PHP_SELF ?>" method="POST" name="isthisthearrayname">
<div class="selecteditems">
</div>
<input type="submit" name="checkout" value="Check out"/>
<input type="submit" name="checkin" value="Check in"/>
</form>