Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    367
    367 is offline
    New Coder
    Join Date
    Nov 2011
    Posts
    12
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Dynamic dropdown list

    Hi,

    i need a two dropdown lists where first (manufacturer) populates second (models) and when submit button is clicked it should lead to page of model, like this: index.php?p=view&m=shop&id=<certain_id>

    all data is in one table and i can't change that: id, manufacturer, model, price, description

    is there any example of something like this or someone knows how to do that?

    thank you

  • #2
    New Coder
    Join Date
    Dec 2012
    Location
    USA
    Posts
    82
    Thanks
    3
    Thanked 17 Times in 17 Posts
    You have a couple options:

    1) Ajax

    You can use Ajax to onChange(this.value) of the manufacturer select, query your database with "WHERE `manufacturer`= 'value.passed.to.js.function'". Then populating your second dropdown with the return results.

    2) Preload every list.

    This is the option I would use. If I'm a user on your site and I have to wait X seconds every time I want to see a new list of models, I'm not happy.

    I would use PHP to query your database for (unfortunately) your entire table (unless you know you don't need a few rows) for the `id`, `manufacturer`, and `model` columns (unless you need more).

    Using those results, I would print them out into a javascript array and use the onChange() function of the manufacturer select to call for the respective array, which would populate the model select.

    Quote Originally Posted by 367
    when submit button is clicked it should lead to page of model, like this: index.php?p=view&m=shop&id=<certain_id>
    Code:
    <form method="get" action="index.php?p=view&m=shop">
    <select name="id">
    <option value="mysql.id">mysql.model</option>

  • #3
    Regular Coder Redcoder's Avatar
    Join Date
    May 2012
    Location
    /dev/null
    Posts
    334
    Thanks
    2
    Thanked 48 Times in 47 Posts
    That can be easily done with Javascript. You need to use Client-Side Coding for that then use event triggers where selecting one option will trigger different values to be loaded on the other Drop-Down list.

    Jquery can help you if you use the .change() trigger or .click()

    http://api.jquery.com/change/

    http://api.jquery.com/click/

    Of course you need to know Jacascript to do that one.

    If it is a particularly long Dropdown, you may combine it with Ajax and load it dynamically using a back-end PHP script that fetches Database data.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •