2012-08-08 133 views
0

我有我的观点一个下拉菜单叫占位符的选项 - "add_fields_placeholder"与价值观没有PHP解析依赖于什么选择

没有选择我想占位符值被排除在$formData阵列,其产生被插入到数据库中的表格的HTML线。

当选择是选择我希望将占位符输入框add_fields_placeholderValue中的文本提交到$formData数组中。

我该怎么做到这一点?

public function add() 
    { 

     $this->form_validation->set_rules('add_fields_name', 'Name', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('add_fields_value', 'Value', 'trim|xss_clean'); 
     $this->form_validation->set_rules('add_fields_class', 'Class', 'trim|xss_clean'); 
     $this->form_validation->set_rules('add_fields_placeholder', 'Placeholder', 'trim|required|xss_clean|callback_dropdown_check'); 
     $this->form_validation->set_rules('add_fields_type', 'Type', 'trim|required|xss_clean|callback_dropdown_check'); 

     if($this->form_validation->run() == FALSE) 
     { 
      $data['validation_errors'] = validation_errors('<div class="alert alert-error">', '</div>'); 
      $data['contentMangement'] = $this->options_model->systemOptions(); 
      $data['pageTitle'] = 'Add Fields'; 
      $this->load->view('_assets/dashHeader', $data); 
      $this->load->view('dashboard/add_fields', $data); 
      $this->load->view('_assets/footer');  


     }else{ 

      $fieldName = $this->input->post('add_fields_name', TRUE); 
      $fieldValue = $this->input->post('add_fields_class', TRUE); 
      $fieldClass = $this->input->post('add_fields_defaultValue', TRUE); 

      //Removes Caps & spaces 
      $fieldNameStripped = strtolower(str_replace(" ", "", $fieldName)); 
      $fieldValueStripped = strtolower(str_replace(" ", "", $fieldValue)); 
      $fieldClassStripped = strtolower(str_replace(" ", "", $fieldClass)); 
      //Default Form Details 

      $fieldLabel = '<label for="'. $fieldNameStripped . '">'. $fieldName. '</label>'."\n"; 

      $formData = array(
           'name' => ''.$fieldNameStripped.'', 
           'id' => ''.$fieldNameStripped.'', 
           'value' => ''.$fieldValueStripped.'', 
           'class' =>''.$fieldClassStripped.'', 
           'placeholder' => '' 
          ); 


      if (isset($_REQUEST['add_fields_type'])) 
      { 
       if($_REQUEST['add_fields_type'] == 'input') 
       { 
        $fieldField = form_input($formData, TRUE); 
       } 

       if($_REQUEST['add_fields_type'] == 'textarea') 
       { 
        $fieldField = form_textarea($formData, TRUE); 
       } 

       if($_REQUEST['add_fields_type'] == 'radiobutton') 
       { 
        $fieldField = form_radio($formData, TRUE); 
       } 

       if($_REQUEST['add_fields_type'] == 'checkbox') 
       { 
        $fieldField = form_checkbox($formData, TRUE); 
       } 

       $fieldTypeInsert = array(
             'name' => ''.$fieldName.'', 
             'type' => ''.$_REQUEST['add_fields_type'].'', 
             'label' => ''.$fieldLabel.'', 
             'field' => ''.$fieldField.'' 
             ); 

       $this->form_model->insertField($fieldTypeInsert); 

       $data['validation_errors'] = '<div class="alert alert-success"><strong>Thank You</strong> Your Field Has Been Added</div>'; 
       $data['contentMangement'] = $this->options_model->systemOptions(); 
       $data['pageTitle'] = 'Add Fields'; 
       $this->load->view('_assets/dashHeader', $data); 
       $this->load->view('dashboard/add_fields', $data); 
       $this->load->view('_assets/footer');  

      } 
     } 
    } 

回答

1

你可以这样做:

$dropdown = $this->input->post('add_fields_placeholder', TRUE); 
$dropdown_value = ''; 
if ($dropdown == 'yes') { 
    $dropdown_value = 'yes'; 
} 

$formData = array(
       'name' => ''.$fieldNameStripped.'', 
       'id' => ''.$fieldNameStripped.'', 
       'value' => ''.$fieldValueStripped.'', 
       'class' =>''.$fieldClassStripped.'', 
       'placeholder' => $dropdown_value 
      );