0

我有一张表,上面显示了一些值。在每一行中都有一个 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

4 回答 4

1

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

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

还修复了您得到的无效 HTML,<div>is</div>和 not的结束标记</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");
    }
}

现场测试用例

于 2013-05-29T08:21:12.547 回答
1

表.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

于 2013-05-29T08:12:16.057 回答
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>
于 2013-05-29T08:15:49.953 回答
0

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

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

然后您可以提交表单或获取值。

于 2013-05-29T08:12:00.373 回答