【问题标题】:Passing textbox value in href在href中传递文本框值
【发布时间】:2021-09-11 02:58:58
【问题描述】:

我有以下代码,并想将qty1[] 传递给我在下面标记为 XXXXXXX 的超链接。

有人可以帮我解决这个问题吗?

<td><img src="<?php echo $item["image"]; ?>" class="cart-item-image" /><?php echo $item["name"]; ?></td>
<td><?php echo $item["code"]; ?></td>
<td style="text-align:right;"> <input type = 'text' id = "qty1[]" name = "qty1[]" value = '<?php echo $item["quantity"]; ?>' /></td>
<td  style="text-align:right;"><?php echo "$ ".$item["price"]; ?></td>
<td  style="text-align:right;"><?php echo "$ ". number_format($item_price,2); ?></td>
<td style="text-align:center;"><a href="cart.php?action=remove&code=<?php echo $item["code"]; ?>" class="btnRemoveAction"><img src="icon-delete.png" alt="Remove Item" /></a></td>
<td style="text-align:center;"><a href="cart.php?action=update&code=<?php echo $item["code"]; ?>&quantity= XXXXXXXXX" class="btnRemoveAction"><img src="icon-delete.png" alt="Update Item" /></a></td>
</tr>

【问题讨论】:

  • 为什么不用字符串qty1[]替换XXXXXX?我猜这个问题比你最初写的要多。
  • 看起来您正在尝试在不使用表单的情况下实现表单,因此非常简短的答案是“使用表单”。没有什么可以阻止表单字段出现在表格中。

标签: javascript php html url hyperlink


【解决方案1】:

您可以在数量变化发生时捕捉它并相应地更新该链接的 href 属性。这个可测试的 sn-p 会删除您所有的 PHP 代码(仅用于测试目的),但可以将 javascript 直接添加到您的 PHP 页面并且可以正常工作。

有一件事,你应该初始化那个链接href,以防数量不变

<a href="cart.php?action=update&code=<?php echo $item["code"]; ?>&quantity=<?php echo $item["quantity"]; ?>" 

window.addEventListener('load', () => {
  document.querySelectorAll('[name="qty1[]"]').forEach(input => {
    input.addEventListener('input', (e) => {
      let a = e.target.closest('tr').querySelector('a.btnRemoveAction');
      let url = a.getAttribute('href').split("?");
      let params = new URLSearchParams(url[1]);
      params.set('quantity', e.target.value)
      params = params.toString()
      url = `${url[0]}?${params}`;
      console.log(url)
      a.setAttribute('href', url);
    })
  })
})
<table>
  <tr>
    <td><img src="img" class="cart-item-image" /> name</td>
    <td>code </td>
    <td style="text-align:right;"> <input type='text' id="qty1[]" name="qty1[]" value='10' /></td>
    <td style="text-align:right;"> $3.99</td>
    <td style="text-align:right;"> $3.99</td>
    <td style="text-align:center;">
      <a href="cart.php?action=remove&code=code" class="btnRemoveAction"><img src="icon-delete.png" alt="Remove Item" /></a>
    </td>
    <td style="text-align:center;">
      <a href="cart.php?action=update&code=code&quantity=1" class="btnRemoveAction"><img src="icon-delete.png" alt="Update Item" /></a>
    </td>
  </tr>
</table>

【讨论】:

  • 我试过你的代码,但是我的输出没有像 sn-ps 输出那样复制。
  • 我刚刚更新了答案,等待页面加载后再执行。应该管用。请尝试,谢谢
  • 非常感谢您现在它工作正常。非常感谢您的帮助。 :)
  • @Santosh - 太棒了!很高兴我能帮助你。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多