We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 11017
    • 12 Posts
    I have a eform with some input-fields and some <select>-fields. The input-fields I can populate like:
    <input type="text" name="foo" eform="Foo:string:0" value="[+foo+]"/>

    But I can’t seem to get this to work with <select>:s. I’ve tried:

    <select name="bar" eform="bar::1" selected="[+bar+]">

    Where [+bar+] is a value corresponding to a value in the <option>:s.
    Is this possible? Anyone have any idea how I can do this?

    Thanks
      • 30223
      • 1,010 Posts
      <select name="bar" >
      <option value="1" [+bar:1+]>One</option>
      <option value="2" [+bar:2+]>Two</option>
      </select>
        • 26975
        • 26 Posts
        I just tried this and am not having any success... is there something wrong with this code?

        <select id="position" name="position" eform="Position::1">
        	<option></option>
        	<option value="Lab_Director" [+position:Lab_Director+]>Lab Director</option>
        	<option value="Management" [+position:Management+]> Management</option>
        	<option value="Principal_Investigator" [+position:Principal_Investigator+]>	Principal Investigator</option>
        	<option value="Purchasing_Agent" [+position:Purchasing_Agent+]>Purchasing Agent</option>
        	<option value="Purchasing_Manager" [+position:Purchasing_Manager+]>Purchasing Manager</option>
        	<option value="Researcher" [+position:Researcher+]>Researcher</option>
        	<option value="Sales_Marketing" [+position:Sales_Marketing+]>Sales & Marketing</option>
        </select>


        I was wrong, it works.

        Wrong again! It only works intermittently. Any ideas?
          • 26975
          • 26 Posts
          It seems the problem comes down to this, in formMerge:

          		$fld = $formats[$name];
          		if (!isset($fld)){
          			// listbox, checkbox, radio select
          			$colonPost = strpos($name, ':');
          			$listName = substr($name, 0, $colonPost);
          			$listValue = substr($name, $colonPost+1);
          			$datatype = $formats[$listName][2];
          			if(is_array($docFields[$listName])) {
          				if($datatype=="listbox" && in_array($listValue, $docFields[$listName])) $docText = str_replace("[+$listName:$listValue+]","selected='selected'",$docText);
          				if(($datatype=="checkbox"||$datatype=="radio") && in_array($listValue, $docFields[$listName])) $docText = str_replace("[+$listName:$listValue+]","checked='checked'",$docText);
          			}
          			else {
          				if($datatype=="listbox" && $listValue==$docFields[$listName]) $docText = str_replace("[+$listName:$listValue+]","selected='selected'",$docText);
          				if(($datatype=="checkbox"||$datatype=="radio") && $listValue==$docFields[$listName]) $docText = str_replace("[+$listName:$listValue+]","checked='checked'",$docText);
          			}
          		}


          Specifically this:

          $datatype = $formats[$listName][2];


          For some reason, the datatype is not being set. Could that be something wrong with my form template or something?
            • 30223
            • 1,010 Posts
            Try taking out the empty <option></option> tag or give it a value and while you are at it, remove the place holders. They are not really needed anymore. Eform will create these place holders on the fly when parsing the form. Set &debug=`3` and you’ll see what the form looks like after parsing.

            <select id="position" name="position" eform="Position::1">
            	<option value="no_value"></option>
            	<option value="Lab_Director">Lab Director</option>
            	<option value="Management"> Management</option>
            	<option value="Principal_Investigator">	Principal Investigator</option>
            	<option value="Purchasing_Agent">Purchasing Agent</option>
            	<option value="Purchasing_Manager">Purchasing Manager</option>
            	<option value="Researcher">Researcher</option>
            	<option value="Sales_Marketing">Sales & Marketing</option>
            </select>
              • 26975
              • 26 Posts
              I removed the blank option as well as the placeholders and now the values don’t show up at all. Just to be certain, I re-downloaded 1.4.4.2. The issue still seems to be the datatype not being set. I made this change:

              if(is_array($docFields[$listName])) {
              				if($datatype=="listbox" && in_array($listValue, $docFields[$listName])) $docText = str_replace("[+$listName:$listValue+]","selected='selected'",$docText);
              				if(($datatype=="checkbox"||$datatype=="radio") && in_array($listValue, $docFields[$listName])) $docText = str_replace("[+$listName:$listValue+]","checked='checked'",$docText);
              			}
              			else {
              				echo " $datatype<br/>"; ------------------------------------------------------------------------------HERE
              				if($datatype=="listbox" && $listValue==$docFields[$listName]) $docText = str_replace("[+$listName:$listValue+]","selected='selected'",$docText);
              				if(($datatype=="checkbox"||$datatype=="radio") && $listValue==$docFields[$listName]) $docText = str_replace("[+$listName:$listValue+]","checked='checked'",$docText);
              			}


              and nothing but
              s are echoed. Is there something on my end that is wrong, still? Here are the updated selects:

              <select id="position" name="position" eform="Position::1">
              				<option value="Lab_Director">Lab Director</option>
              				<option value="Management"> Management</option>
              				<option value="Principal_Investigator">	Principal Investigator</option>
              				<option value="Purchasing_Agent">Purchasing Agent</option>
              				<option value="Purchasing_Manager">Purchasing Manager</option>
              				<option value="Researcher">Researcher</option>
              				<option value="Sales_Marketing">Sales & Marketing</option>
              			</select><br />
              			
              			<label for="industry">Industry:</label> 
              			<select id="industry" name="industry" eform="Industry::1">
              				<option value="Biotechnology">Biotechnology</option>
              				<option value="Chemicals">Chemicals</option>
              				<option value="Communications">Communications</option>
              				<option value="Consulting">Consulting</option>
              				<option value="Energy">Energy</option>
              				<option value="Engineering">Engineering</option>
              				<option value="Environmental">Environmental</option>
              				<option value="Food_Beverage">Food & Beverage</option>
              				<option value="Financial">Financial</option>
              				<option value="Government">Government</option>
              				<option value="Lifesciences">Lifesciences</option>
              				<option value="Lighting">Lighting</option>
              				<option value="Optical_Component">Optical Component</option>
              				<option value="Pharmaceutical">Pharmaceutical</option>
              				<option value="Printing">Printing</option>
              				<option value="PR">PR</option>
              				<option value="Security">Security</option>
              				<option value="Telecommunications">Telecommunications</option>
              				<option value="University">University</option>
              				<option value="Utilities">Utilities</option>
              				<option value="Other">Other</option>
              			</select>


              Thanks so much for your help.
                • 30223
                • 1,010 Posts
                Can you post a printout of the full form template and of the debug output? (best as an attachment)
                  • 26975
                  • 26 Posts
                  Here you go. Thanks for taking a look.
                    • 16732
                    • 592 Posts
                    Did you find what was the problem ?

                    I populate my form (&tpl) with an eFormOnBeforeFormMerge function but I don’t understand how to put the "selected" on the right option.

                    Thanks for your help

                      • 26975
                      • 26 Posts
                      I never heard back on this and it didn’t work for me.