realmente no entiendo porque haces esta linea
document.forms.cart_quantity.action = "http://www.recibo.com/valor.html?products_id="+valor+"&action=buy_no w&sort=4a";
ahí estás enviando las variables por GET
?products_id="+valor+"&action=buy_now&sort =4a
lo que dice si el form se envia por POST o GET es esto method="post"
pero a la vez se pueden enviar por los dos métodos
ejemplo:
<form name="cart_quantity" id="cart_quantity" method="post" action="index.html?variable_get=hola">
ahi se envia por GET la variable llamada variable_get y a la vez por tener el method="post" , también se envian por POST, los campos del formulario.
Entonces, el código que te pasé antes envia el formulario al cambiar o seleccionar una opcion del select desplegable no hace falta llamar a las funciones jevasrcipt que estás llamando, quedando algo así:
Código HTML:
Ver original<form name="cart_quantity" id="cart_quantity" method="post">
<select name='producto' id='producto' style='font-size:18px;border:1px solid #ff6600;margin-top:5px;' onchange="this.form.submit()"> <option value='46' name='opcion' onClick='CanviarPreu(11,25)'>10cm x 122cm (1,25
€)
</option> <option value='32' name='opcion' onClick='CanviarPreu(20,25)'>>30cm x 122cm (2,25
€)
</option> <option value='115' name='opcion' onClick='CanviarPreu(33,75)'>>50cm x 122cm (3,75
€)
</option> <option value='34' name='opcion' onClick='CanviarPreu(40,50)'>60cm x 122cm (4,50
€)
</option> <option value='35' name='opcion' onClick='CanviarPreu(55,50)'>80cm x 122cm (5,50
€)
</option> <option value='36' name='opcion' onClick='CanviarPreu(69,0)'>100cm x 122cm (6
€)
</option> <option value='39' name='opcion' onClick='CanviarPreu(111,25)'>150cm x 122cm (10,25
€)
</option> <option value='43' name='opcion' onClick='CanviarPreu(200,25)'>200cm x 122cm (20,25
€)
</option>
El evento onchange="this.form.submit()" es el encargado de enviar el formulario, esto, traducido al español sería:
Cuando haya un cambio o cuando se seleccione una opcion, envíame el formulario.
El formulario se enviará depende lo que diga el atributo action="" del formulario, si está vacio, se enviará al archivo actual, osea se enviará a sí mismo.
En tu caso, según lo que veo, lo queré enviar a
http://www.paginaprueba.html