我正在尝试通过 URL 将 2 个值传递到另一个页面。我知道如何执行此操作,但是我正在从选择框的结果中获取其中一个值。我正在获取选定的值并将其存储在一个变量中,然后尝试将此变量发布到 URL 中。
选项 1 正在存储所选值。
<select name = 'ADDITIONALINFO' id = 'ADDITIONALINFO'>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
<script>
var sel = document.getElementById("ADDITIONALINFO");
sel.onchange = function()
{
var option1 = sel.options[sel.selectedIndex].text;
alert(option1);
};
</script>
<?php
echo "<div class=\"add-button-quote\"><a href=\"/quotation/index.php?sku=" . $product->PR_SKU . "&OP_NAME=" . $option1 . "&OP_NAME2=" . $o->OP_NAME . "\">Get a Quotation</a></div>";
我遇到的问题是,当我单击按钮时,它所带的 URL 也会显示 $sku,但不显示 $option1。
如果有人能发现我哪里出了问题,我将非常感谢你的建议。谢谢!
最佳答案
当页面处于事件状态时,PHP 不会运行,它只会在页面加载之前运行。从那里你必须依赖 javascript。
如果 $product->PR_SKU
和 $o->OP_NAME
由 PHP 设置,则不必更改该部分,但删除 OP_NAME
来自网址。选择选项后,您可以通过 javascript 添加参数。
请注意,您可能希望将 baseUrl 存储在其他位置,而不是像下面这样编写,这样您可能会获得参数的重复项:
document.getElementById("your-link").href += "&OP_NAME=" + option1;
这样做:
var baseUrl = <?php echo "/quotation/index.php?sku=" . $product->PR_SKU . "&OP_NAME2=" . $o->OP_NAME; ?>
var sel = document.getElementById("ADDITIONALINFO");
sel.onchange = function()
{
var option1 = sel.options[sel.selectedIndex].text;
document.getElementById("your-link").href = baseUrl + "&OP_NAME=" + option1;
};
您的 div 可以如下所示(请注意删除了 option1 和 id='your-link'
:
<?php
echo "<div class=\"add-button-quote\"><a id=\"your-link\" href=\"/quotation/index.php?sku=" . $product->PR_SKU . "&OP_NAME2=" . $o->OP_NAME . "\">Get a Quotation</a></div>";
?>
关于javascript - 如何使用 URL 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29824382/