【发布时间】:2013-04-14 02:47:24
【问题描述】:
我有一些 PHP 代码可以打印交易表中的数据行。每一行都像
用户名-报价-交换-日期-交易
TRADE 是一个输入,点击后,相关的 PHP 会检查并相应地更新数据库。
如果是 POST 等
$idn=strip_tags($_POST['buy']));
$query1=$db->prepare("SELECT * FROM tradeauction WHERE id=:buyid");
$query1->execute(array(':buyid'=>$idn));
///检查等等。
这是包含 TRADE 输入/按钮的 div: (我知道这可能是一个很长的路要走,但它的旧代码,我只是想整理它并将整个站点从 mysql 转换为 PDO。)
<div class="buyrow left">
<?PHP echo"<input class=\"changeBlue\" onmouseover=\"this.className='changeBlueoff'; document.getElementById('$ct->id').className='changeBlueoff'\"
onmouseout=\"this.className='changeBlue'; getElementById('$ct->id').className='changeBlue'\"
onclick=\"this.value='$ct->id'; this.submit()\" type=\"submit\" value=\"Trade\" name=\"buy\">"; ?>
</div>
$ct->id
显然是行的id。
类的改变只是改变按钮的颜色。
当前单击时,它可以工作,但会向用户简要显示 id。我不希望这种情况发生。我只想让它一直简单地说交易。 (悬停时为蓝色)
如何使单击时不显示该值,但仍将 id 值传递给 PHP 检查?或者有人可以提出另一种更简单的方法来实现这一目标吗?
编辑:对于交易中的每个 ID(行),它将以 HTML 格式打印 -
<div id="cashtrades">
<div class="trrow left"> <?php echo "<a href=profile.php?viewuser=$ct->username >$ct->username</a>"?></div>
<div class="prrow left"><?PHP echo"$showname"; ?></div>
<div class="ofrow left"><?PHP echo"$symbolcheck".makecomma($ct->item_amount)." $itemcheck"; ?> </div>
<div class="exrow left"><?PHP echo"$exsymcheck".makecomma($ct->exchange_amount)." $exitemcheck"; ?></div>
<div class="darow left"><?PHP echo"$ct->datepost"; ?></div>
<div class="buyrow left"><?PHP echo"<input class=\"changeBlue\" onmouseover=\"this.className='changeBlueoff'; document.getElementById('$ct->id').className='changeBlueoff'\"
onmouseout=\"this.className='changeBlue'; getElementById('$ct->id').className='changeBlue'\"
onclick=\"this.value='$ct->id'; this.submit()\" type=\"submit\" value=\"Trade\" name=\"buy\">";?> </div>
</div>
【问题讨论】:
-
您的用户 ID 在哪里回显到 html 中,我在您的代码中看不到?
-
没有用户ID。 $ct->id 是数据库中包含交易详情的行的id。
-
好的,我明白了。您可以编写一个 javascript 函数来设置隐藏输入项的值,并在您的 php 代码中使用它而不是您正在更新的输入吗?
-
好的,我明白了。所以理论上我会用
getElementById('hidden').value代替this.value,但用一个更简洁的方式替换它。