How to create select dropdown field in phtml file dynamically in Magento2.2.5?
I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?
Refer screenshot
This is my from I have override my contact form, I want a dropdown for Subject field.
magento2 module
add a comment |
I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?
Refer screenshot
This is my from I have override my contact form, I want a dropdown for Subject field.
magento2 module
What do you mean by calling dynamically ?
– Ahsan Horani
37 mins ago
add a comment |
I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?
Refer screenshot
This is my from I have override my contact form, I want a dropdown for Subject field.
magento2 module
I want to create a select dropdown field in contact form(phtml file) which must be called dynamically in magento2.2.5?
Refer screenshot
This is my from I have override my contact form, I want a dropdown for Subject field.
magento2 module
magento2 module
asked 48 mins ago
AmyAmy
1639
1639
What do you mean by calling dynamically ?
– Ahsan Horani
37 mins ago
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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;
}
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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;
}
add a comment |
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;
}
add a comment |
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;
}
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;
}
answered 20 mins ago
Ahsan HoraniAhsan Horani
340217
340217
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
What do you mean by calling dynamically ?
– Ahsan Horani
37 mins ago