1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Converter um array em string

Bom dia Dev, Estou usando o frameWork CodeIgniter na minha aplicação, o problema que estou passando está em enviar as opções marcadas no checkbox do formulário para salvar no banco de dados:

View - formulário

<div class="customcheck">
    <h4>DOCUMENTOS</h4>
        <div class="form-check">
            <label>
                <input type="checkbox" value="CPF" name="documento[]" id="CPF"> <span class="label-text">CPF</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="RG" name="documento[]" id="RG"> <span class="label-text">RG</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="Título Eleitoral" name="documento[]" id="tituloEleitoral"> <span class="label-text">Título Eleitoral</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="Certidão nascimento" name="documento[]" id="certidaoEleitoral"> <span class="label-text">Certidão nascimento</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="Reservista" name="documento[]" id="reservista"> <span class="label-text">Reservista</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="CTPS" name="documento[]" id="CTPS" > <span class="label-text">CTPS</span>
            </label>
        </div>
        <div class="form-check">
            <label>
                <input type="checkbox" value="Doc. social" name="documento[]" id="docSocial"> <span class="label-text">DOC. SOCIAL</span>
            </label>
        </div>
        <span class="help-block"></span>
</div>

Controlle

public function ajax_save_socioeducando() {
        //if (!$this->input->is_ajax_request()) {
           // exit("Nenhum acesso de script direto permitido!");
        //}
        $json = array();
        $json["status"] = 1;
        $json["error_list"] = array();
        $this->load->model("Model_seCadastro");
        $data = $this->input->post();
        if (!empty($json["error_list"])) {
            $json["status"] = 0;
        //enviar um hash da foto para   banco de dados
        } else { 
            if (!empty($data["se_img"])) {
                $file_name = basename($data["se_img"]);
                $old_path = getcwd() . "/tmp/" . $file_name;
                $new_path = getcwd() . "/assets/img/se/" . $file_name;
                rename($old_path, $new_path);
                $data["se_img"] = "/assets/img/se/" . $file_name;
            } else {
                unset($data["se_img"]);
            }
            if (empty($data["id_se"])) {
                $this->Model_seCadastro->insert($data);                
            } else {
                $id_se = $data["id_se"];
                unset($data["id_se"]);
                $this->Model_seCadastro->update($id_se, $data);                
            }
        }        
        echo json_encode($json);
    }

no Model temos:

Class Model_seCadastro extends CI_Model{

     public function __construct(){
        parent::__construct();
        $this->load->database();
    }
    //carregar as views
    public function show_socioeducando(){
        $this->db->from("sec_cadastrose");
        return $this->db->get()->result_array();
    }

    public function get_data($id, $select = NULL) {
        if (!empty($select)) {
            $this->select($select);
        }
            $this->db->from("sec_cadastrose");
            $this->db->where("id_se", $id);
        return $this->db->get();
    }

    public function insert($date) {
        $this->db->insert("sec_cadastrose", $date);
    }

    //Editar
    public function update($id, $date) {

        $this->db->where("id_se", $id);
        $this->db->update("sec_cadastrose", $date);    
    }


    public function delete($id) {    
        $this->db->where("id_se", $id);
        $this->db->delete("sec_cadastrose");
    }

    //Verificar duplicadas
    public function is_duplicated($field, $value, $id = NULL) {
        if (!empty($id)) {
            $this->db->where("id_se <>", $id);
        }
        $this->db->from("sec_cadastrose");
        $this->db->where($field, $value);
        return $this->db->get()->num_rows() > 0;
    }
}

No arquivo .js

$("#formCadastroSe").submit(function() {
        $.ajax({
            url: "Sec_cadastroAdd/ajax_save_socioeducando",
            dataType: "json",
            data: $(this).serialize(),
            type: "POST",

            beforeSend: function () {
                clearErrors();
                $("#btn_add_se").siblings(".help-block").html(loadingImg("Verificando..."));
            },
            success: function(response){
                clearErrors();                

                if (response["status"]) {
                   Swal.fire({
                        title: "Sucesso!",
                        text: "Socioeducando salvo com sucesso!",
                        type: "success"
                    }).then(function() {
                        window.location = "sec_cadastroControle";
                    });
                } else {
                    showErrors(response["error_list"]);
                }
            }   
        })
        return false;
    });

Ao marcar as checkbox retorna um erro para converter array string

Message: Array to string conversion

e os value ficam assim aparecendo a palavra array e não as opções marcas:

VALUES ('1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', Array, '', '', '', '', '', '', '', '', '', '', '', '', '')

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php banco-de-dados string ou faça a sua própria pergunta.