0

「はい」を選択すると正常に動作する次のコントローラーがありますが、「いいえ」を選択すると問題が発生します。

データベースに「いいえ」を挿入するにはどうすればよいですか? **

** NO! と言わせるために、elseif を追加しました。

コントローラ:

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);
        $fieldClass = $this->input->post('add_fields_class', TRUE);
        $fieldValue = $this->input->post('add_fields_defaultValue', TRUE);

        //Dropdown Placeholder
        $dropdown = $this->input->post('add_fields_placeholder', TRUE);

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

        }

        //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' => ''.$dropdown_value.''
                        );


        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.'',
                                    'class' =>  ''.$fieldClass.'',
                                    'value' => ''.$fieldValue.'',
                                    'placeholder' => ''.$dropdown.'',
                                    'placeholder_value' => ''.$dropdown_value.'', 
                                    'type'  =>  ''.$_REQUEST['add_fields_type'].'',
                                    'label' =>  ''.$fieldLabel.'',
                                    'field' =>  ''.$fieldField.''   
                                    );

            $this->field_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';
            $data['fieldType'] = $this->input->get('add_fields_type');
            $data['placeholderType'] = $this->input->get('add_fields_placeholder');
            $this->load->view('_assets/dashHeader', $data);
            $this->load->view('dashboard/add_fields', $data);
            $this->load->view('_assets/footer');    

        }
    }
}       

意見:

<label for="add_fields_placeholder">Placeholder: </label>
    <select name="add_fields_placeholder" id="add_fields_placeholder">
        <option value="">Please Select</option>
        <option value="yes" <?php echo set_select('add_fields_placeholder','yes', ( !empty($placeholderType) && $placeholderType == "yes" ? TRUE : FALSE ));?>>Yes</option>
        <option value="no" <?php echo set_select('add_fields_placeholder','no', ( !empty($placeholderType) && $placeholderType == "no" ? TRUE : FALSE ));?>>No</option>
    </select>
4

2 に答える 2

3

よし、まずは手放そう

$dropdown = '';

これは値をリセットするため、はいまたはいいえを保持しません

第二に、両方

if($dropdown = 'yes')
else($dropdown = 'no')

=の代わりに==を使用する必要があります。=は変数に値を代入するために使用され、==値を比較するために使用されます。

それらを変更した後、それは機能しますか?

編集:elseを使用してから、別の条件を追加することはできません。あなたはただ使用する必要があります

else { 

または他の使用

if($dropdown == 'no') {

編集: 明確さと情報のために、単一の = を使用して if で行っていることは、yes または no に等しいかどうかを尋ねているのではなく、それを等しくし、できたかどうかを尋ねています。

于 2012-08-14T05:20:40.053 に答える
0

$dropdown を空の文字列に設定し、「はい」と「いいえ」で比較します。実際には比較しませんが、割り当てたかどうかを確認します$dropdown = 'yes'。比較演算子を確認してください: http://php.net/manual/en/language.operators.comparison.php

$dropdown = '';
if($dropdown = 'yes')
于 2012-08-14T05:20:54.233 に答える