Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 08-22-2011, 08:09 PM
Iain M's Avatar
Iain M Iain M is offline
 
Join Date: Jul 2005
Location: Glasgow, Scotland
Posts: 256
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Dropdown Menus 'selected="selected"'

As per my previous thread, I am making an edit page where users can edit multiple rows at once, I have the updating working.
I'm now stuck at getting it to show what option the user has selected, when they view the edit page again.

PHP Code:
    // Get list of countries for Country option
    
$countryOptions '';
    
$getCountries $db->query_read("SELECT * FROM " TABLE_PREFIX "countries ORDER BY title ASC");    
    
    
// Get user services
    
$editServices $vbulletin->db->query_read("
        SELECT *
        FROM " 
TABLE_PREFIX "services
        WHERE userid = '" 
$vbulletin->userinfo['userid'] . "'
        ORDER BY id DESC
    "
);

    while (
$editService $vbulletin->db->fetch_array($editServices))
    {
        while(
$viewCountry $db->fetch_array($getCountries))
        {
            
// Check which Country is seleted
            
$getChecked $db->query_first("SELECT id, country FROM " TABLE_PREFIX "services WHERE country = " $viewCountry['id'] . " AND id = " $editService['id']);

            
$optiontitle $viewCountry['title'];
            
$optionvalue $viewCountry['id'];
            
$optionselected = ($viewCountry['id'] == $getChecked['Country']) ? 'selected="selected"' '';
            
$optionclass '';

            
$countryOptions .= render_option_template($optiontitle$optionvalue$optionselected$optionclass);
        }        
        
// Register 'editservicebit' template variables
        
$templater vB_Template::create('editservicebit');
            
$templater->register('id'$editService['id']);
            
$templater->register('title'$editService['title']);
            
$templater->register('description'$editService['description']);
            
$templater->register('country'$editService['country']);
            
$templater->register('free'$editService['free']);
            
$templater->register('active'$editService['active']);
            
$templater->register('countryOptions'$CountryOptions);
            
$editservicebit .= $templater->render();
    } 
The code above only seems to be matching $viewCountry['id'] == $getChecked['Country'] on the first row from the editServices query, and applying selected="selected" to that country in each row, even when another country has been selected for that service. It isn't looping with while($viewCountry = $db->fetch_array($getCountries)). I had tried a foreach loop instead, and had got somewhere, but it still wasn't working, so I went back to the start to try again, but it feels like I'm banging my head against a brick wall, and going round in circles.

To help you understand what I mean, here's an example of the HTML output:
HTML Code:
<td><select class="primary" name="country[3]" tabindex="1">
<option value="1" class="" >Australia</option> 
<option value="2" class="" >Canada</option> 
<option value="3" class="" selected="selected">New Zealand</option> 
<option value="4" class="" >United Kingdom</option> 
<option value="5" class="" >United States</option>
</select></td>
<td><select class="primary" name="country[2]" tabindex="1">
<option value="1" class="" >Australia</option> 
<option value="2" class="" >Canada</option> 
<option value="3" class="" selected="selected">New Zealand</option> 
<option value="4" class="" >United Kingdom</option> 
<option value="5" class="" >United States</option>
</select></td>
Can someone point me in the right direction again?


Cheers for your help!

Iain
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:25 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05448 seconds
  • Memory Usage 2,820KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_html
  • (10)bbcode_php
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (16)post_thanks_box
  • (16)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (16)post_thanks_postbit_info
  • (16)postbit
  • (16)postbit_onlinestatus
  • (16)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete