user2179307
user2179307

Reputation: 23

URL query string using multiple drop down list selections (ideally PHP?)

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

Answers (2)

Dipen Bagia
Dipen Bagia

Reputation: 51

  1. You can create a hidden input field named "keyword" in your form:

  2. Attach a handler to the onsubmit event of the form:

     <form name="form1" method="post" action="" onsubmit="updateKeyword()">
    
  3. 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

sugunan
sugunan

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

Related Questions