在一个输入按钮中传递两个项目

时间:2013-01-15 14:50:20

标签: php mysql

我有一个简单的表格,每行都有一个接受和拒绝按钮。如果按“接受”,我需要根据唯一引用将10添加到MYSQL列。如果下降添加20与相同的参考(每行一个) 我有以下代码来创建表和按钮。(连接等取出)

<form Action="leaveupdate.php?" method="POST" >
$query= "
SELECT t0.*, t1.id_user as t1user, t1.name as t1name
FROM $loc t0
LEFT JOIN login1st t1 ON t0.User_id = t1.id_user
WHERE t0.status >=10 and status <20 ORDER BY Date_Input ASC
";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$fieldCount = mysql_num_fields($result);
echo "<TABLE border='1' cellspacing='0' cellpadding='15' id='sort_table' width='490px'>    <thead><TR bgcolor=#ffffff>";
?>
<legend>Research results!</legend>
<table border="1" width="75%" cellpadding="2" cellspacing="0">
<tr>
        <TD align="center">Requestor</TD>
        <TD align="center">Leave type</TD>
        <TD align="center">Date requested</TD>
        <TD align="center">Date Requested</TD>
        <TD align="center">ACCEPT</TD>
        <TD align="center">DECLINE</TD>
</tr>
        <?
echo "</TR></thead><tbody>";
while ($row = mysql_fetch_assoc($result)) {
echo '<tr>';
echo'<td align=middle>' . $row["t1name"]                      . '</td>' ; // Requestor
echo'<td align=middle>' . $res                       . '</td>' ; // Status
echo'<td align=middle>' . date("l", $row["date_effected"]) . "<BR>". date("j-M-Y",   $row["date_effected"])     . '</td>' ; // Day off
echo'<td align=middle>' . date("d-m-y @ H:i", $row["Date_Input"])             . '</td>'   ; //Date Requested
echo'</td><td><input type="submit" name="edit" value="10" class="buttons2">';//Add 10
echo'</td><td><input type="submit" name="edit" value="20" class="buttons3">';//Add 20
echo'<td alighn=middle>'.$row["Unique_id"].'</td>';Just for testing not needed will be removed from the table
echo '</tr>';
}
echo "</tbody></TABLE>";
?>
</table>
</body>
</html>

这是发布的(我用来看看会发生什么但会被改变)到这个页面

<?php
$loc = $fgmembersite->UserLocation();
$conn = mysql_connect("****","******","Pword");
if (!$conn) die ("Could not connect MySQL");
mysql_select_db("****",$conn) or die ("Could not open database");
if(!isset($_POST['edit']))
{
//add die here
}

$IU            =    ($_POST['Unique_id']);
$change            =    ($_POST['edit']);
$sql_query_update = "update $loc set status = status+$change where unique_id = IU";
mysql_query( $sql_query_update );
echo $sql_query_update;//only for testing will be removed
mysql_Close()
?>

你可以看到我希望有两个变量IU并改变,但无法弄清楚。可能很容易,但如果有人可以帮助它会有所帮助。我一直在阅读网络并看到了对AJAX的引用,但从未使用或研究过这个。 谢谢JD

1 个答案:

答案 0 :(得分:0)

不要尝试通过提交按钮传输多个数据,而是使用隐藏的<input>

<form ... >
    <input type="hidden" name="unique_id" value="<?php echo htmlspecialchars($row['Unique_id']); ?>" />

    ...
</form>

该ID将在$_POST['unique_id']中提供。

另外,请考虑添加一项检查以防止用户自由设置要更改的金额。如果您只想更改1020,请通过服务器端检查强制执行此操作 - 目前您通过用户输入接受实际更改金额。


附注:不建议使用mysql_*库,建议升级到PDO或MySQLi。您的代码容易受到SQL注入攻击,您应该升级MySQLi库并使用Prepared Statement或者至少使用适当的转义函数(在这种情况下为mysql_real_escape_string())。