2016-06-28 114 views
1

我正在制作一个简单的库存系统,用于跟踪设备进出我们的大门。库存存储在MYSQL中,其表格如下所示:id名称存储已使用location_storage位置使用php变量添加基于下拉列表的输入字段

当我使用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> 
+1

问题是什么? –

+0

不清楚.....! –

+0

我想停止使用两个上面的代码框,而是使用下拉列表选择我想要出现在表单中的行。现在,这个表单是由php“静态”创建的。 我的意思是我想根据选择插入输入字段。我会看看我能否找到一个排序的例子。 –

回答

0

好了,我发现我自己的解决方案。

我最终使用了我的表格填充下拉列表,正如我在问题的最后一个代码框中显示的那样。我想到的是,我可以简单地使用jQuery的显示/隐藏功能。

我所做的是制作一个脚本,告诉(在“可读”)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> 
相关问题