所以我遇到了一个问题,我现在已经尝试了很长一段时间,但我真的不知道怎么做。
我在表格中有多个提交按钮(每行一个)。如何让每个提交按钮执行不同的SQL任务?进一步解释......
所以我有一个看起来像这样的表(这是来自View Source的HTML代码,没有生成表内容的底层PHP代码):
<table class='table table-striped'>
<thead>
<tr>
<th>Date/Time</th>
<th>Exchange</th>
<th>Amount</th>
<th>Current reversed ex. rate</th>
<th>Arbitrage opportunity</th>
<th>Change</th>
</tr>
</thead>
<tbody>
<form action='arbitrage.php' method='post'>
<tr>
<td> 2015-12-24 22:32:50 </td>
<td>JPY to GBP</td>
<td>¥18,000.00 --> £100.80</td>
<td>179.48 GBP / JPY</td>
<td><font color='green'>¥<b>91.584</b> <b><u>PROFIT</u></b> on original ¥18,000.00 if you exchange now. <br/> (Total after change: ¥<b>18,091.584</b>).
</font></td>
<td><button type='submit'>Change</button></td>
</tr></form></tbody>
<tbody>
<form action='arbitrage.php' method='post'>
<tr>
<td> 2015-12-24 22:33:07</td>
<td>GBP to EUR</td>
<td>£15,000.00 --> €20,359.50</td>
<td>0.7365 EUR / GBP</td>
<td><font color='red'>£<b>5.228</b> <b><u>LOSS</u></b> on original £15,000.00 if you exchange now. <br> (Total after change: £<b>14,994.772</b>).
</font></td>
<td><button type='submit'>Change</button></td>
</tr></form></tbody>
为了更好地理解,这是表格的图像:
http://i.imgur.com/niyuT14.jpg
现在,当按下“更改”按钮时,我希望从名为“历史记录”的SQL表中删除FROM THAT SPECIFIC ROW中的信息。
目前,我尝试过以下内容:
$query = "DELETE FROM history WHERE currency = ?", $row["currency"];
//row["currency"] is the stuff below the 'Exchange' header in the table.
但是,当我按下“更改”按钮时,HTML表格的所有现有行都会从“历史记录”SQL表中删除。如何只删除一行(按下按钮的那一行),而其他行则保持原样?
请帮忙!
非常感谢你们!
答案 0 :(得分:1)
您可以使用name =&#39; currency&#39;添加隐藏的输入对于每行或更多行,您可以使用ajax提交查询
答案 1 :(得分:0)
更改表单操作表单:
<form action='arbitrage.php' method='post'>
到
<form action='arbitrage.php?id=99' method='post'>
并将您的查询更新为:
$id = isset($_GET['id']) ? $_GET['id'] : ''; //This will give you--> id = 99;
$query = "DELETE FROM history WHERE currency = ?", $id;
值99当然是来自db table的动态。
答案 2 :(得分:0)
我看到值是硬编码的,对于按钮或表单,您使用的是相同的arbitrage.php操作页面。为每个表单或按钮使用不同的页面,并根据您的意愿编写您的mysql代码。如果它是动态的,那么你将不得不使用JS onClick事件。
答案 3 :(得分:0)
没有这么多表格,只有一个。然后在arbitrage.php中,删除提交的行并返回同一页面,可能是..
<form action='arbitrage.php' name='changeForm' method='post'>
<input type="hidden" name="currency">
<table class='table table-striped'>
<thead>
<tr>
<th>Date/Time</th>
<th>Exchange</th>
<th>Amount</th>
<th>Current reversed ex. rate</th>
<th>Arbitrage opportunity</th>
<th>Change</th>
</tr>
</thead>
<tbody>
<tr>
<td> 2015-12-24 22:32:50 </td>
<td>JPY to GBP</td>
<td>¥18,000.00 --> £100.80</td>
<td>179.48 GBP / JPY</td>
<td><font color='green'>¥<b>91.584</b> <b><u>PROFIT</u></b> on original ¥18,000.00 if you exchange now. <br/> (Total after change: ¥<b>18,091.584</b>).
</font></td>
<td><button type='button' onclick="chg_currency('GBP / JPY');">Change</button></td>
</tr></tbody>
<tbody>
<tr>
<td> 2015-12-24 22:33:07</td>
<td>GBP to EUR</td>
<td>£15,000.00 --> €20,359.50</td>
<td>0.7365 EUR / GBP</td>
<td><font color='red'>£<b>5.228</b> <b><u>LOSS</u></b> on original £15,000.00 if you exchange now. <br> (Total after change: £<b>14,994.772</b>).
</font></td>
<td><button type='button' onclick="chg_currency('EUR / GBP');">Change</button></td>
</tr></tbody>
</table>
</form>
<script>
function chg_currency(c) {
document.forms['changeForm'].currency.value = c;
document.foms['changeForm'].submit();
}
</script>