Reputation: 23
I am trying to create a dynamic URL query string on a PHP-based shopping cart when a submit button is pressed on a PHP form page where the website user has selected options from multiple drop down menus.
URL example: www.mydomain.com/index.php?main_page=advanced_search_result&search_in_description=1&keyword=32-C
If you look at the above URL, the final section after "&keyword=" should be dynamic, so it’s basically the URL: www.mydomain.com/index.php?main_page=advanced_search_result&search_in_description=1&keyword="FIRST DROP DOWN BOX"+"-"+"SECOND DROP DOWN BOX SELECTION"
How can I script this, and how can I set the form button to execute the script?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Search</title>
</head>
<body>
<form name="form1" method="post" action="">
<select name="BustSize" id="BustSize">
<option value="0" selected="selected">Bust Size</option>
<option value="30">30</option>
<option value="32">32</option>
<option value="34">34</option>
<option value="36">36</option>
<option value="38">38</option>
<option value="40">40</option>
</select>
<select name="CupSize" id="CupSize">
<option value="0" selected="selected">Cup Size</option>
<option value="AA">AA</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="DD">DD</option>
<option value="E">E</option>
<option value="F">F</option>
</select>
<input name="Search" type="button" value="Submit">
</form>
</body>
</html>
Upvotes: 2
Views: 1409
Reputation: 51
You can create a hidden input field named "keyword" in your form:
Attach a handler to the onsubmit event of the form:
<form name="form1" method="post" action="" onsubmit="updateKeyword()">
The updateKeyword function:
function updateKeyword() {
var bustSize = document.getElementById("BustSize").value,
cupSize = document.getElementById("CupSize").value;
document.forms[0].keyword.value = bustSize + "-" + cupSize;
}
Upvotes: 1
Reputation: 4456
This can be done with the support of jQuery. I have created a working script at the following URL: http://sugunan.net/demo/form1.php. You can see the source code there as it is pure HTML and JavaScript function. But here I copy the code for your reference.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Search</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$( "#submit_search" ).click(function() {
var url = "http://sugunan.net/demo/form1.php?main_page=advanced_search_result&search_in_description=1&keyword="
url = url + $( "#BustSize" ).val();
url = url + "-" + $( "#CupSize" ).val();
window.location = url;
});
});
</script>
</head>
<body>
<form name="form1" method="post" action="">
<select name="BustSize" id="BustSize">
<option value="0" selected="selected">Bust Size</option>
<option value="30">30</option>
<option value="32">32</option>
<option value="34">34</option>
<option value="36">36</option>
<option value="38">38</option>
<option value="40">40</option>
</select>
<select name="CupSize" id="CupSize">
<option value="0" selected="selected">Cup Size</option>
<option value="AA">AA</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="DD">DD</option>
<option value="E">E</option>
<option value="F">F</option>
</select>
<input name="Search" id="submit_search" type="button" value="Submit" />
</form>
</body>
</html>
Check the HTML header for the script portion.
Upvotes: 3