0

我搜索了很长时间,但我没有找到解决我的问题的方法。情况是,我的视图中集成了一些按钮,单击它们会影响更新单个输入字段。问题是我有警告,变量在视图中是未定义的。我理解我为什么以及如何压制它们,但我不确定这是否是一个好的解决方案。有没有更好的方法来解决这个问题?什么是最佳实践?

这是我在视图文件中的代码:

<?php 
echo $this->Form->create('Excel', array('type' => 'file'));
echo $this->Form->file('File');
echo $this->Form->submit('Upload xls File');
echo $this->Form->end();

echo $this->Form->create('Config');
//echo $this->Form->input('Name');
echo $this->Form->input('vlanNumber');
echo $this->Form->input('description', array('value' => $description));

echo $this->Form->input('preSharedKey', array('value' => $preSharedKey));
echo $this->Form->button('generate', array('name'=>'generateButton'));

echo $this->Form->input('customerPeerIp', array('default' => 'id_of_default_val','value' => $cusPeerIp));

生成按钮会影响新的 preSharedKey。并且 csv 的上传影响了其他字段的更新。控制器的相关代码是这样的:

    public function inputData() {


    if ($this->request->is('post')) {
        $post_data = $this->request->data;
        if (isset($this->request->data['show'])) {  //Submit Button was clicked
            $this->Session->write('Configuration',$post_data); //Store the input fields in the session
            return $this->redirect(array('action' => 'showPreview'));
        } else if (isset($this->request->data['cancel'])) { // Cancel button was clicked: Go back to index site 
            return $this->redirect(array('action' => 'index')); 
        } else if (isset($this->request->data['generateButton'])) {
            return $this->set('preSharedKey', $this->getRandomString(20)); //Set a Pre Shared Key with 30 signs
        }
        if (!empty($this->data) && is_uploaded_file($this->data['Excel']['File']['tmp_name'])) {
            $this->importData($this->data['Excel']['File']['tmp_name']);
            $excel=new Excel();
            $values=$excel->getParams($this->data['Excel']['File']['tmp_name']);
            $this->set('description',$values['description']);
            $this->set('cusPeerIp',$values['cust_peer']);
            return;
              //this calls the Excel Class function

        }
        //print_r($post_data);
        //echo $post_data['Config']['Name'];
        //echo $this->request['Config']['task_1'];
    }
    $this->set('description','');
    $this->set('cusPeerIp','');
    $this->set('preSharedKey', '');
}

你能帮我么?

4

0 回答 0