vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Each From with Select Option (https://vborg.vbsupport.ru/showthread.php?t=325160)

grey_goose 05-27-2017 01:39 PM

Each From with Select Option
 
field298 Single Line Text Box

Instead of free input I wanted to show a select dropdown to validate input. There were a ton of options, so I created an array, and then looped through the array to create the <options>. A first blank option was also added.

Template
PHP Code:

<select class="primary" name="userfield[field298]" id="cfield_298" tabindex="1">
    <
option value="" <vb:if condition="$bbuserinfo['field298'] == ''">selected="selected"</vb:if> ></option>
    <
vb:each from="titlearray[$allcharacterdb[$bbuserinfo['field109']]['Organization']]" key="userid" value="userinfo">
        <
option value="{vb:raw userinfo.title}" <vb:if condition="$bbuserinfo['field298'] == '{vb:raw userinfo.title}'">selected="selected"</vb:if> >{vb:raw userinfo.title}</option>
    </
vb:each>
</
select

HTML Output (small sampling)
HTML Code:

<select class="primary" name="userfield[field298]" id="cfield_298" tabindex="1">
        <option value=""></option>
        <option value="Adept">Adept</option>
        <option value="Axesworn">Axesworn</option>
</select>

So this all works, and saves fine. The problem is that the selected attribute isn't catching on the option/field after it's been saved and then the form is brought up again. So the next time the form pulls up, it's blank, and then clears the field. Here's where I'm trying to set the attribute. What am I missing?

PHP Code:

<vb:if condition="$bbuserinfo['field298'] == '{vb:raw userinfo.title}'">selected="selected"</vb:if> 


Dave 05-27-2017 01:48 PM

You can't use vBulletin template syntax inside of a condition. Now it checks if it literally equals the string '{vb:raw userinfo.title}'. Changing it to the following should work, given that the $userinfo array variable is available.

HTML Code:

<vb:if condition="$bbuserinfo['field298'] == $userinfo['title']">

grey_goose 05-27-2017 01:54 PM

Ugh, I knew that. Got too dialed in on the array and using options withe a text input to remember the basics.

Thanks so much :)

https://vborg.vbsupport.ru/external/2017/05/3.jpg


All times are GMT. The time now is 10:45 PM.

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.00972 seconds
  • Memory Usage 1,727KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_html_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete