How to create select dropdown field in phtml file dynamically in Magento2.2.5?












1















I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?



Refer screenshot



enter image description here



This is my from I have override my contact form, I want a dropdown for Subject field.










share|improve this question























  • What do you mean by calling dynamically ?

    – Ahsan Horani
    37 mins ago
















1















I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?



Refer screenshot



enter image description here



This is my from I have override my contact form, I want a dropdown for Subject field.










share|improve this question























  • What do you mean by calling dynamically ?

    – Ahsan Horani
    37 mins ago














1












1








1








I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?



Refer screenshot



enter image description here



This is my from I have override my contact form, I want a dropdown for Subject field.










share|improve this question














I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?



Refer screenshot



enter image description here



This is my from I have override my contact form, I want a dropdown for Subject field.







magento2 module






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 48 mins ago









AmyAmy

1639




1639













  • What do you mean by calling dynamically ?

    – Ahsan Horani
    37 mins ago



















  • What do you mean by calling dynamically ?

    – Ahsan Horani
    37 mins ago

















What do you mean by calling dynamically ?

– Ahsan Horani
37 mins ago





What do you mean by calling dynamically ?

– Ahsan Horani
37 mins ago










1 Answer
1






active

oldest

votes


















0














This is one of the ways to create a Dropdown (Select box) and get values dynamically inside phtml



<?php
$states = $block->getStates();
?>
<select name='order_items[state]' class='form-control'>
<?php foreach($states as $option) {
if($option['value'] == '')
{ ?>
<option value="">Please select State of Vehicle Registration</option>
<?php } else{ ?>
<option value="<?php echo $option['value'] ?>"><?php echo $option['label'] ?></option>
<?php }} ?>
</select>


Here you can see, the Dropdown values are fetched from the template's Block class using $block->getStates()



You can define template block class by creating a layout xml file inside like appcodeVendorModuleviewfrontendlayoutcontact_index_index.xml



<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Contact Form</title>
</head>
<body>
<referenceContainer name="content">
<block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
</referenceContainer>
</body>
</page>


Above you can see following section is responsible to define template's block class. So if you already have layout xml file for the form, then you can add below section to that layout xml file



<referenceContainer name="content">
<block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
</referenceContainer>


Now inside your Block class appcodeVendorModuleBlockContact.php



You can define your methods. And all the methods can be accessed from phtml using $block-><methodname>()



Example method in Contact.php block class



public function getStates()
{
$options[0] = ['value' => 'CA', 'label' => 'California'];
$options[1] = ['value' => 'AZ', 'label' => 'Arizona'];
return $options;
}





share|improve this answer























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "479"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f264621%2fhow-to-create-select-dropdown-field-in-phtml-file-dynamically-in-magento2-2-5%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    This is one of the ways to create a Dropdown (Select box) and get values dynamically inside phtml



    <?php
    $states = $block->getStates();
    ?>
    <select name='order_items[state]' class='form-control'>
    <?php foreach($states as $option) {
    if($option['value'] == '')
    { ?>
    <option value="">Please select State of Vehicle Registration</option>
    <?php } else{ ?>
    <option value="<?php echo $option['value'] ?>"><?php echo $option['label'] ?></option>
    <?php }} ?>
    </select>


    Here you can see, the Dropdown values are fetched from the template's Block class using $block->getStates()



    You can define template block class by creating a layout xml file inside like appcodeVendorModuleviewfrontendlayoutcontact_index_index.xml



    <?xml version="1.0"?>
    <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
    <title>Contact Form</title>
    </head>
    <body>
    <referenceContainer name="content">
    <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
    </referenceContainer>
    </body>
    </page>


    Above you can see following section is responsible to define template's block class. So if you already have layout xml file for the form, then you can add below section to that layout xml file



    <referenceContainer name="content">
    <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
    </referenceContainer>


    Now inside your Block class appcodeVendorModuleBlockContact.php



    You can define your methods. And all the methods can be accessed from phtml using $block-><methodname>()



    Example method in Contact.php block class



    public function getStates()
    {
    $options[0] = ['value' => 'CA', 'label' => 'California'];
    $options[1] = ['value' => 'AZ', 'label' => 'Arizona'];
    return $options;
    }





    share|improve this answer




























      0














      This is one of the ways to create a Dropdown (Select box) and get values dynamically inside phtml



      <?php
      $states = $block->getStates();
      ?>
      <select name='order_items[state]' class='form-control'>
      <?php foreach($states as $option) {
      if($option['value'] == '')
      { ?>
      <option value="">Please select State of Vehicle Registration</option>
      <?php } else{ ?>
      <option value="<?php echo $option['value'] ?>"><?php echo $option['label'] ?></option>
      <?php }} ?>
      </select>


      Here you can see, the Dropdown values are fetched from the template's Block class using $block->getStates()



      You can define template block class by creating a layout xml file inside like appcodeVendorModuleviewfrontendlayoutcontact_index_index.xml



      <?xml version="1.0"?>
      <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <head>
      <title>Contact Form</title>
      </head>
      <body>
      <referenceContainer name="content">
      <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
      </referenceContainer>
      </body>
      </page>


      Above you can see following section is responsible to define template's block class. So if you already have layout xml file for the form, then you can add below section to that layout xml file



      <referenceContainer name="content">
      <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
      </referenceContainer>


      Now inside your Block class appcodeVendorModuleBlockContact.php



      You can define your methods. And all the methods can be accessed from phtml using $block-><methodname>()



      Example method in Contact.php block class



      public function getStates()
      {
      $options[0] = ['value' => 'CA', 'label' => 'California'];
      $options[1] = ['value' => 'AZ', 'label' => 'Arizona'];
      return $options;
      }





      share|improve this answer


























        0












        0








        0







        This is one of the ways to create a Dropdown (Select box) and get values dynamically inside phtml



        <?php
        $states = $block->getStates();
        ?>
        <select name='order_items[state]' class='form-control'>
        <?php foreach($states as $option) {
        if($option['value'] == '')
        { ?>
        <option value="">Please select State of Vehicle Registration</option>
        <?php } else{ ?>
        <option value="<?php echo $option['value'] ?>"><?php echo $option['label'] ?></option>
        <?php }} ?>
        </select>


        Here you can see, the Dropdown values are fetched from the template's Block class using $block->getStates()



        You can define template block class by creating a layout xml file inside like appcodeVendorModuleviewfrontendlayoutcontact_index_index.xml



        <?xml version="1.0"?>
        <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <head>
        <title>Contact Form</title>
        </head>
        <body>
        <referenceContainer name="content">
        <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
        </referenceContainer>
        </body>
        </page>


        Above you can see following section is responsible to define template's block class. So if you already have layout xml file for the form, then you can add below section to that layout xml file



        <referenceContainer name="content">
        <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
        </referenceContainer>


        Now inside your Block class appcodeVendorModuleBlockContact.php



        You can define your methods. And all the methods can be accessed from phtml using $block-><methodname>()



        Example method in Contact.php block class



        public function getStates()
        {
        $options[0] = ['value' => 'CA', 'label' => 'California'];
        $options[1] = ['value' => 'AZ', 'label' => 'Arizona'];
        return $options;
        }





        share|improve this answer













        This is one of the ways to create a Dropdown (Select box) and get values dynamically inside phtml



        <?php
        $states = $block->getStates();
        ?>
        <select name='order_items[state]' class='form-control'>
        <?php foreach($states as $option) {
        if($option['value'] == '')
        { ?>
        <option value="">Please select State of Vehicle Registration</option>
        <?php } else{ ?>
        <option value="<?php echo $option['value'] ?>"><?php echo $option['label'] ?></option>
        <?php }} ?>
        </select>


        Here you can see, the Dropdown values are fetched from the template's Block class using $block->getStates()



        You can define template block class by creating a layout xml file inside like appcodeVendorModuleviewfrontendlayoutcontact_index_index.xml



        <?xml version="1.0"?>
        <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <head>
        <title>Contact Form</title>
        </head>
        <body>
        <referenceContainer name="content">
        <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
        </referenceContainer>
        </body>
        </page>


        Above you can see following section is responsible to define template's block class. So if you already have layout xml file for the form, then you can add below section to that layout xml file



        <referenceContainer name="content">
        <block class="VendorModuleBlockContact" name="contact.form" template="Vendor_Module::form.phtml"/>
        </referenceContainer>


        Now inside your Block class appcodeVendorModuleBlockContact.php



        You can define your methods. And all the methods can be accessed from phtml using $block-><methodname>()



        Example method in Contact.php block class



        public function getStates()
        {
        $options[0] = ['value' => 'CA', 'label' => 'California'];
        $options[1] = ['value' => 'AZ', 'label' => 'Arizona'];
        return $options;
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 20 mins ago









        Ahsan HoraniAhsan Horani

        340217




        340217






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Magento Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f264621%2fhow-to-create-select-dropdown-field-in-phtml-file-dynamically-in-magento2-2-5%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What other Star Trek series did the main TNG cast show up in?

            Berlina muro

            Berlina aerponto