编写一个从magento中的phtml文件调用的函数

时间:2018-01-11 07:14:14

标签: php magento

我是magento的新人, 我在magento 1.9中创建了一个phtml模板文件。 我的phtml我创建了一个HTML表单。我想在提交该表格后调用一个函数。我有点困惑我应该如何写一个函数我应该创建一个控制器或一个块或在同一个phtml我写了一个函数。 请指导我正确 `

            <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 content-row">
                <h2>PLEASE ENTER</h2>
            </div>

            <div class="col-lg-12">
                <div class="col-sm-4 col-md-4 col-lg-4 col-xs-4">
                    <div class="form-group">
                        <label>name</label><br><br> 
                        <input class="form-control" maxlength="2">
                    </div>
                </div>

`

2 个答案:

答案 0 :(得分:0)

它与MVC pattern相关联。要缩短它,您需要在控制器上写一个新动作。

例如,如果您的表单应该发送电子邮件,您可以在负责显示表单的控制器中编写一个名为Core的新方法。在此方法中,您将检查表单并发送电子邮件(如果必须的话)。

块保存块本身的逻辑(检索将显示的数据)

Phtml文件仅用于显示和事件,你可以在Magento文件中看到phtml逻辑,这是一个坏习惯并且有历史原因。

要完成,如果您的表单逻辑由magento控制器保存,则需要override the controller并轻触if ($this->form_validation->run() != FALSE) { $data = array( 'product_name' => $this->input->post('product_name'), 'product_price' => $this->input->post('product_price'), 'product_stock' => $this->input->post('product_stock'), 'categorie_id' => $this->input->post('categorie_id') ); $this->load->model('queries_product'); $this->load->library('upload',$config); if(!$this->upload->do_upload('product_image')) { $this->session->set_flashdata('msg','Failed to Upload'); } else { $uploaddata = $this->upload->data(); $product_image=$uploaddata['file_name']; if($this->queries_product->insert_product($data)) { $this->session->set_flashdata('msg','Successfully Inserted'); } else { $this->session->set_flashdata('msg','Failed to Insert'); } return redirect('inventory'); } } else { echo validation_errors (); }

答案 1 :(得分:0)

您执行此操作的方法很少:https://www.w3schools.com/jsref/event_onsubmit.asp

以下是一个简单的示例,说明如何在表单提交上运行JS。

<form name="yourform" onsubmit="your_script()" >
    <input type="text" name="text"/>
  <input type="submit" name="Submit" value="Submit"/>
</form>

function your_script() {
//your script here
}