4

好的,问题是我有一个表单中的标签,当我按下按钮时我试图访问这个标签,我的表单看起来像:

<form method = 'POST'>
<img src = 'ItemIcons/<?php echo $ItemPicture;?>.png' alt = '<?php echo $row["ItemDesc"];?>'/>
<label name = 'lblItemName'><?php echo $ItemName; ?></label> 
<br>
<label> <?php echo "Gold:" . $row["ItemPrice"]; ?> </label> 


<input type = 'submit' value = 'Buy <?php echo $ItemName; ?>' name = 'ItemPurchase'/>
</form>

我调用按钮的代码如下所示:

if(isset($_POST['ItemPurchase'])) {
    $ItemName = $_POST["lblItemName"];
    ?>
        <script>
            alert('<?php echo $ItemName;?>');
        </script>
    <?php
}

目前它会提醒一个空值,当我将它作为文本框而不是标签放置时它可以工作,但遗憾的是它需要是一个标签,任何帮助都会很棒,谢谢。

4

5 回答 5

10

标签不会与表单一起提交,因此它不会按照您的方式工作。为什么不在它下面创建一个隐藏的输入字段来回显相同的值?然后您的 $_POST[''] 将起作用。

<input type="hidden" name="lblItemName" value="<?php echo $ItemName; ?>">
于 2013-10-20T18:09:33.573 回答
3

很容易做到。

alert($('label').html());
于 2013-10-20T18:13:57.023 回答
2

无需对代码进行重大更改,您就可以使用使用与标签相同的值初始化的隐藏字段来获得所需的内容。

于 2013-10-20T18:08:56.030 回答
0

您无法从表单发布中获取标签的值,因为未发送信息。您可以做的是使用标签的值向表单添加一个隐藏字段

于 2013-10-20T18:10:00.267 回答
0

标签只是 HTML 页面上任何其他可见实体的标签,借助 javascript 及其库,您可以访问标签内的 HTML 以将其发送到服务器。但是这种方法并不好,正如其他人所建议的那样,最好使用隐藏字段来发布此类数据而不使用javascript。

此外,我想补充一点,如果您的页面使用的是 HTML5,那么您可以将 data 属性与大多数 html 标签一起使用来存储链接到这些元素的数据。使用 jQuery 访问这些数据,将其序列化并通过 Ajax 请求将其发送到服务器。

于 2013-10-20T18:46:47.047 回答