首页 > 解决方案 > 在href中传递文本框值

问题描述

我有以下代码,并想传递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>

标签: javascriptphphtmlurlhyperlink

解决方案


您可以在数量变化发生时捕捉到数量变化,并相应地更新该链接的 href 属性。这个可测试的代码片段删除了你所有的 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>


推荐阅读