单击按钮从表中获取值

时间:2013-05-29 08:06:19

标签: php javascript html

我有一张表显示了一些值。每行都有一个Order_ID和一个按钮。

如何在$ Order_ID中获取我的值以在点击按钮时显示(警告)?

<tbody>

<?php

foreach($menuextra_result as $transaction)
{
?>
<tr>



$order_id = isset($transaction['order_id'])?($transaction['order_id']) :"";
?>
<?php if($order_id){ ?>
<td><div id="orderID"><?= $order_id ?></a></td>
<?php } else {?>
<td><div ><span style="color:red">MANGLER</span></td>
<?php }?> 



style="color:red">MISSING</span></td>

                        <?php }?>   

//There's more here, but did not bother to show it, because it was irrelevant. 

<td><input type="submit" onclick="getElementById" value="Yes  "></td>
<?php }
?>         

</tr>
<?php
}
?>

</tbody>

这是我试过的方式

<script type="text/javascript">
function getElementById()
{
    el = document.getElementById('order_id');
       alert(el);

}
</script>

但是点击按钮时没有任何反应

4 个答案:

答案 0 :(得分:1)

table.php

//assuming you have done you loop work
<table>
<tr>
<td>
<?php echo $row['name']?>
</td>
<td><input type="button" value="click me" onclick="clickMe(<?php echo $row['id']?>)" /></td>
</tr>
</table>

clickme unction就像这样

function clickMe(id) {
alert(id);
}

您将一个参数传递给clickMe()函数,参数为id

答案 1 :(得分:1)

首先,不要使用id因为你有多个这样的元素。您可以改为使用类:

<div class="orderID"><?= $order_id ?></div>

同时修复了您获得的无效HTML,<div>的结束标记为</div>而非</a>

其次,更改单击以将按钮发送到功能:

<input type="submit" onclick="FindOrder(this);" value="Yes  " />

最后这个功能应该可以解决问题:(通过搜索“兄弟”div)

function FindOrder(oButton) {
    var oRow = oButton.parentNode;
    while (oRow && oRow.tagName.toLowerCase() !== "tr")
        oRow = oRow.parentNode;
    var arrDivs = oRow.getElementsByTagName("div");
    var orderDiv = null;
    for (var i = 0; i < arrDivs.length; i++) {
        if (arrDivs[i].className === "orderID") {
            orderDiv = arrDivs[i];
            break;
        }
    }
    if (orderDiv != null) {
        var orderNumber = orderDiv.innerHTML;
        alert("order is " + orderNumber);
    } else {
        alert("order not found");
    }
}

Live test case

答案 2 :(得分:0)

您需要在某处将$ order_id打印到HTML中。你可以使用隐藏的输入:

<input name="order_id" id="order_id" value="<?php echo $order_id; ?>">

然后你可以提交表格或抓住价值。

答案 3 :(得分:0)

如果不存在,则无法从您的网页获取元素。 所以解决方案很简单,只需在表上添加一个隐藏的输入元素即可。您可以从脚本中获取ID。

<tbody>

<?php

foreach($menuextra_result as $transaction)
{
?>
<tr>

<?php 
$order_id = isset($transaction['order_id'])?($transaction['order_id']) :"";
?>

//There's more here, but did not bother to show it, because it was irrelevant. 

<td>
    <input type="hidden" name="order_id" id="order_id" value="<?php echo $order_id;?>">
    <input type="submit" onclick="getElementById" value="Yes  "></td>
<?php }
?>         

</tr>
<?php
}
?>

</tbody>