www.webdeveloper.com
Results 1 to 3 of 3

Thread: dynamically number dropdown ID's linked to check boxes

  1. #1
    Join Date
    Apr 2008
    Posts
    44

    dynamically number dropdown ID's linked to check boxes

    Hi
    I need to be able to dynamically number drop down lists which are created from a mysql database, to make matters more confusing I also need to link the list to a checkbox, so that each checkbox has a dropdown list.
    The checkboxes are dynamically assigned an ID, but I am lost how to connect the two.

    Can anyone help?

    Dave

  2. #2
    Join Date
    Apr 2007
    Posts
    1,666
    without seeing more of your code I'm not sure exactly what you're trying to achieve but you can generate a unique id for each set using something like a counter in a loop, or progression from a set variable eg $id=0 then $id++ when you need to increase it to keep it unique.

    You can then use it to relate to any form element by appending it to the name.

    eg
    PHP Code:
    <?
    $id=0;
    ?>
    <select name="list_<?=$id?>"> 
        <option...>etc
    </select>
    <input type=checkbox name="checkbox_<?=$id?>" /> 

    <?
    $id++;//$id now=1
    ?>
    <select name="list_<?=$id?>"> 
        <option...>etc
    </select>
    <input type=checkbox name="checkbox_<?=$id?>" />
    Of course it would make sense to keep the drawing of the different elements dynamic (in a loop) so you're not limiting yourself.

    So now you have a unique name for each element on the page that follow a set of rules and have a unique id associated with each one.

    After the form is posted explode() on the underscore to retrieve each part of the identifier.

  3. #3
    Join Date
    Apr 2008
    Posts
    44
    Many thanks
    Here is my code
    test page
    Code:
    <?
    include 'testdoggy.php';
    error_reporting(E_ALL ^ E_NOTICE); 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <html>
    <script>
    function showMe (it, box) {
      var vis = (box.checked) ? "block" : "none";
      document.getElementById(it).style.display = vis;
    }
    </script>
    </head>
    <body>
    <form action="test.php" method="post" enctype="multipart/form-data" class="style2"><table width="390" border="0">
      <tr>
        <td>dog name</td>
        <td><input type="text" size="20" maxlength="20" name="dogs" <?php if (isset($_POST['dogs'])) { ?> value="<?php echo $_POST['dogs']; ?>"
    	<?php } ?>/></td>
      </tr>
      <tr>
        <td><? echo breeds() ?> </td>
        <td><div id="div1" style="display:none">
    <? echo classes() ?>
    </div></td>
      </tr>
      <tr>
        <td><input type="submit" name="submit" value="Submit" /></td>
        <td></td>
      </tr>
      <tr>
        <td width="182"></td>
        <td width="198">    </td>
      </tr>
    </table>
    </form>
    </body>
    </html>
    and my function page is
    Code:
    <?
    include 'includes/db.inc.php';
    
    function breeds(){
    	$returnstr='';
        $query = "select breedsID, breedy from doggybreed order by breedy";
        $result = @mysql_query($query);
    		  $ii=0;
    	while($breeds2=mysql_fetch_assoc($result)){
    		$returnstr= $returnstr.'<label><input type="checkbox" name="breedsID_'.$ii.'" value="'.$breeds2['breedsID'].'" onclick="showMe(\'div1\', this)" >'.$breeds2['breedy'].'</label><br />';
    		$ii++;
    	}
    	$returnstr= $returnstr.'<input type="hidden" name="breedcount" value="'.$ii.'"/>';
    
    		return $returnstr;
    }
    
    function classes(){
    	$returnstr='<select name="class1">';
        $query = 'select classID, class from doggyclass order by class';
        $result = @mysql_query($query);
    		  
    	while($areas=mysql_fetch_array($result)){
    		$returnstr= $returnstr.'<option value="'.$areas['classID'].'">'.$areas['class'].'</option>';
    	}
    
    		$returnstr= $returnstr.'</select>';
    		return $returnstr;
    }
    
    if (!isset($_POST['submit']))
    {
    	
    	// Store the information in the database
    	$query = "insert into doggys (dogs)values ('$_POST[ndogs]')";
    		mysql_query ($query) or die ('Could not add dog.');
    
    
    	$query="select LAST_INSERT_ID() as id";
    
    	$result=mysql_query ($query);
    
    
    	if (mysql_num_rows($result) > 0)
    
    	{
    
    		$dogID = mysql_fetch_array($result);
    
    		$dogID=$dogID['id'];
    
    
    	}
    	$count=count($breed);
    
    	//echo 'count='.$_POST['breedcount'].'--';
    
    	for($i=0;$i<$_POST['breedcount'];$i++){
    		if(isset($_POST['breedsID_'.$i])){
    			$query= "insert into doggybreedy(dogID,breedsID, classID) values($judgeID, '$_POST[class1]',".$_POST['breedid_'.$i].'  );';
    			mysql_query ($query) or die ('Could not add judge breed.');
    		}
    
    	}
    	}
    	
    ?>
    The idea is that each dynamically generated checkbox has a dropdown field so that when a user enters a name, selects a checkbox and then selects from the dropdown list, the options are sent to the database

    Dave

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

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

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.12835 seconds
  • Memory Usage 2,859KB
  • Queries Executed 13 (?)
More Information
Template Usage (34):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates