未提交Php/sql表单填充值

未提交Php/sql表单填充值,php,html,sql,Php,Html,Sql,嗨,我有一个简短的问题。目前,我正在用sql查询中的数据填充表单。例如,他们选择了第二项,表格中填写了数据库中第二项的数据。然后,我希望能够按下我的更新按钮并提交表单中的数据,这样,如果表单中的数据发生更改,数据库中的数据也会发生更改。 例如: 从下拉列表中选择项目1 按下回车键 页面将刷新,表单将填充第一次提交时sql语句中的数据 ^^^这很有效 我知道表单中有这些信息,我希望能够点击ubdate按钮,以便传递旧数据或键入值并将其细分。问题是表单中存储的变量和数据没有传递 这是页面源代码

嗨,我有一个简短的问题。目前,我正在用sql查询中的数据填充表单。例如,他们选择了第二项,表格中填写了数据库中第二项的数据。然后,我希望能够按下我的更新按钮并提交表单中的数据,这样,如果表单中的数据发生更改,数据库中的数据也会发生更改。 例如:

  • 从下拉列表中选择项目1
  • 按下回车键
  • 页面将刷新,表单将填充第一次提交时sql语句中的数据
  • ^^^这很有效
我知道表单中有这些信息,我希望能够点击ubdate按钮,以便传递旧数据或键入值并将其细分。问题是表单中存储的变量和数据没有传递

这是页面源代码

enter code here


<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href="css/main.css" type="text/css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
    <title>Inventory</title>

</head>
<body>

<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href="css/headercss.css" type="text/css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
    <title>Inventory</title>

</head>
<body>

<div id="navigation">
        <ul>
            <li>
            <a href="">Total Inventory</a>
               <ul>
                <li><a href="TotalInventory.php">Total Inventory</a></li>
                <li><a href="NewItem.php">Add new Item</a></li>
                <li><a href="SpecificItem.php">View Specific Item</a></li>

                <li><a href="UpdateItem.php">Update Item</a></li>
            </ul>
            </li>

            <li>
            <a href="">House Inventory</a>
               <ul>
                <li><a href="#">House Inventory</a></li>

                <li><a href="#">Add new Item</a></li>

            </ul>
            </li>


        </ul>
    </div>

</body> <br />
    <form id="addItem" action="/workspace/iventory2/UpdateItem.php" method="post" >

        <select name="items" id="items">

        <option value"sdgssr5y">sdgssr5y</option><option value"a">a</option><option value"sf">sf</option><option value"gsh">gsh</option><option value"cat">cat</option><option value""></option><option value"afdsf">afdsf</option><option value"15">15</option><option value"zzz">zzz</option><option value"nnn">nnn</option><option value"dsdsgfsg">dsdsgfsg</option>     </select>
        <input class="submit" type="submit" value="Enter" name="submit"/>

        <input class="update" type="submit" value="update" name="update"/>      
    </form>
    <form method="post">
        <br />


    <form id="addItem" action="/workspace/iventory2/UpdateItem.php" method="post" autocomplete="off" >

        <label>Item Name: <input name="ItemName" id="ItemName" value="15"/></label><label>CostPrice: <input name="CostPrice"id="CostPrice"value="10"/></label><label>CurrentLevel:<input name="CurrentLevel"id="CurrentLevel"value="10"/></label>   


        <input class="submit" type="submit" value="Enter" name="submit"/>   
    </form>

    <form method="post">

</body>
在此处输入代码
库存
库存

SDGSSR5YASFGSHCATAFDSF15ZZZNNDSGFSG
项目名称:成本价格:当前级别:
误读了这篇文章,对不起。重新评估

有两个建议可以尝试,一个是用于编码实践,如果可能,不要使用文本作为WHERE,而是指定一个ID并传递它。如果使用文本,则必须考虑大小写等因素


在HTML中,添加空格。name=“CurrentLevel”id=“CurrentLevel”value=”“

我看不出在代码中设置/填充$\u SESSION['item']变量的位置,但我会将该值存储在表单中的隐藏输入中

表格编号:

<form action="" method="post"><!-- Form action="" forces form to submit to itself -->
<input type="hidden" name="update" value="true" /><!-- Tell our script to process -->
<?php
$work = mysql_query("
SELECT *
FROM Inventory WHERE `ItemName` LIKE '{$_SESSION['item']}' LIMIT 1
");

if ( $work && ( mysql_num_rows($work) > 0 ) ) {

$row = @mysql_fetch_assoc( $work );

echo '<input type="hidden" name="item_to_update" value="' .
$row['ItemName'] . '" />' .
'<label>Item Name: <input name="ItemName" id="ItemName" value="' .
htmlentities($row['ItemName']) .
'"/></label>' .
'<label>CostPrice: <input name="CostPrice"id="CostPrice"value="' .
htmlentities($row['CostPrice']) .
'"/></label>' .
'<label>CurrentLevel:<input name="CurrentLevel"id="CurrentLevel"value="' .
htmlentities($row['CurrentLevel']) .
'"/></label>';
}


不清楚什么不起作用,但您的HTML不正确。属性之间需要一些空格:。如果发布表单的生成HTML代码,可能会有所帮助。您是指IDE的代码还是来自本地主机源代码?右键单击浏览器并选择“查看HTML源代码”时获得的代码。这是PHP脚本生成的代码。要捕获Html错误,最好使用Html验证程序运行输出,就像上次我检查的那样,如果属性正确引用,则属性之间不需要空格。唯一需要的空格是在标记名之后。除了可怕的编码实践之外,传递更新按钮时是否会导致不传递值?例如,我希望传递的值是行['ItemName'],但它没有被设置为值?当它得到检查,看看它是否被设置,它失败了。下一个问题,你的表单ID都是一样的。。。无论如何,在打开php标记之后的文件顶部,当然,放置print\u r($\u POST);当你点击按钮时,看看正在处理什么。它将帮助您调试问题。除非我有文件/所有代码,否则我不能真正测试你的代码。
<?php
if ( isset( $_REQUEST['update'] ) ) {

$ItemName = mysql_real_escape_string( $_REQUEST['ItemName'] );
$CostPrice = mysql_real_escape_string( $_REQUEST['CostPrice'] );
$CurrentLevel = mysql_real_escape_string( $_REQUEST['CurrentLevel'] );
$ItemToUpdate = mysql_real_escape_string( $_REQUEST['item_to_update'] );

mysql_query("
UPDATE Inventory 
SET ItemName='$ItemName',CostPrice='$CostPrice',CurrentLevel='$CurrentLevel'
WHERE  ItemName='$ItemToUpdate'
LIMIT 1
");

$_SESSION['item'] = $ItemName;
}