如何将多个变量附加到使用javascript的url?

问题描述:

我无法将多个变量附加到使用javascript的URL的末尾。用户使用选择菜单和textarea在页面上提供输入。只使用textarea的作品,但我不能包括选择菜单。如何将多个变量附加到使用javascript的url?

<?php 
$price = $_GET['price']; 
$title = $_GET['title']; 
$retailer = $_GET['retailer']; 
$img = $_GET['img']; 
$link = $_GET['link']; 
$desc = $_GET['desc'];  
?> 

<textarea rows="3" id="textarea" class="input-xlarge" placeholder="Size, color, style, etc" name ="options"></textarea> 

<select style="width: 130px;" id="quantity" class="span2"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     </select> 

<script language="javascript"> 
    function test() 
{ 
    var val=document.getElementById("textarea").value; 
    var val=document.getElementById("quantity").value; 
    var hrf="viewcart.php?retailer=<?php echo $retailer?>&link=<?php echo $link; ?>&price=<?php echo $price; ?>&title=<?php echo $title; ?>&options="+val; 
    document.getElementById("a_link").href=hrf; 
} 
</script> 

<a href ="#" id="a_link" onclick="test();" class="btn btn-success" type="submit"> 
    <i class="icon-shopping-cart icon-white"></i> Add to Cart 
</a> 

我试图改变该生产线是:

var hrf="viewcart.php?retailer=<?php echo $retailer?>&link=<?php echo $link; ?>&price=<?php echo $price; ?>&title=<?php echo $title; ?>&options="+val; 

我想有以下,但它没有工作:

var hrf="viewcart.php?retailer=<?php echo $retailer?>&link=<?php echo $link; ?>&price=<?php echo $price; ?>&title=<?php echo $title; ?>&options="+val + “&quantity=” + quantity; 

如何得到这个任何想法上班?

+0

:试试这个? – jmort253 2012-03-05 08:00:20

+0

你想要生成的URL是什么?您当前的代码将从'select'中获取值并将其添加到选项中。这是你想要做的吗? – fayerth 2012-03-05 08:04:15

+1

您正在定义'val'变量两次;为了什么目的? – faino 2012-03-05 08:05:19

使用此哥们,

var quantity = document.getElementById("quantity").options[document.getElementById("quantity").selectedIndex].value; 

var val=document.getElementById("textarea").value; 

var hrf="viewcart.php?retailer=<?php echo $retailer?>&link=<?php echo $link; ?>&price=<?php echo $price; ?>&title=<?php echo $title; ?>&options="+val + “&quantity=” + quantity; 
+0

和我的一样,但很高兴在一行中看到它。 +1 – Anthony 2012-03-05 08:49:15

使用value不能访问下拉列表中的选定选项。您必须找到选择哪个选项,然后选择该选项的价值。你在哪里定义变量

var selected_qty = document.getElementById("quantity").selectedIndex; 
var all_qtys  = document.getElementById("quantity").options; 

var quantity = all_qtys[selected_qty].value; 
+0

-1 select元素的[value](http://dev.w3.org/html5/spec/Overview.html#the-select-element)是第一个选定选项的值,如果没有,则为空字符串被选中。 – RobG 2012-03-05 08:36:26

+0

真的,因为我的代码有效,而OP则没有。顺便说一下,当你正在做一个约翰尼的时候,发送HTML5的工作草稿规范,同时我的回答是基于[推荐的html 4标准](http:// www。 w3.org/TR/html4/interact/forms.html#h-17.6)。所以,坚持你的-1选定的价值。 – Anthony 2012-03-05 08:44:50

+0

你的前两句话是错误的。相关的**标准**是W3C DOM 2 HTML规范,它规定了[HTMLSelectElement的值属性]的值(http://www.w3.org/TR/DOM-Level-2-HTML/html.html #ID-94282980),这是HTML5规范中的陈述的基础(其中说几乎完全相同的东西)。 HTML 4规范是关于HTML的,而不是DOM。 HTML select元素没有value属性,但DOM * HTMLSelectElement *具有值**属性**(请参阅DOM 2 HTML和HTML5规范)。 – RobG 2012-03-05 13:28:07