Ayuda para cambiar el valor de un checkbox de on a 1 ó 0
Publicado por Pepe (13 intervenciones) el 16/10/2020 09:49:09
Hola buenas, estoy teniendo problemas para cambiar el valor de un check box a la hora de enviarlo al servidor.
Tengo unos inputs que se crean de forma dinámica al pulsar un boton.
el problema que tengo es que necesito cambiar el valor del checkbox cuando no está marcado, cuando se lo mando al servidor, si tengo 2 checkbox uno marcado y otro no, solo me llega el marcado con un on, y el no marcado me lo borra, es decir que recibo solo 1 valor, y me da error, en el servidor.
Si alguien me pudiera ayudar a sacar esto, que seguro es una simplicidad, pero no sé cómo hacerlo
Tengo unos inputs que se crean de forma dinámica al pulsar un boton.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<form method="POST" id="myForm" action="<?php echo base_url(); ?>controlador/cambiarValor">
<button class=mybtn id="mybtn" onclick="insertarInputs()" type="button" aria-label="">+</button>
<p>Nombre: <input type="text" name="nombre" id="nombre"></p>
<p class="parrafo">Check<input type="checkbox" onclick="changeValue(this)" name="mycheckbox[]"></p>
<button type="submit" name="Enviar">Enviar</button>
</form>
var myForm = document.getElementById("myForm");
function insertarInputs() {
var input = ' <p>Nombre: <input type="text" name="nombre" id="nombre"></p> <p class="">Check<input type="checkbox" name="mycheckbox[]"</p>';
myForm.insertAdjacentHTML("beforeend", input);
}
var listcheckBox = document.querySelectorAll("input [type= 'checkbox']");
listcheckBox.forEach(checkBox=>{
var isChecked = checkBox.checked;
alert(listcheckBox);
var valorCheck = checkBox.value;
if(checkBox.checked){
checkBox.value='1';
}else{
checkBox.value='0';
}
//Intente hacer esto pero solo se ejecuta cuando se pulsa en el check box y si no lo pulsas no se ejecuta y no se cambia el valor
function changeValue(elemento){
// elemento.addEventListener('click', function(){
elemento.value= "";
if(elemento.value!=''){
elemento.value = "1";
}else{
elemento.value= "0";
}
// })
}
/CONTROLADOR
public function cambiarValor()
{
$checbox = $this->input->post("mycheckbox");
$nombre = $this->input->post("nombre");
$datos = array( 'Nombre' => $nombre ,'CheckBox' => $checbox);
var_dump($datos);
}
el problema que tengo es que necesito cambiar el valor del checkbox cuando no está marcado, cuando se lo mando al servidor, si tengo 2 checkbox uno marcado y otro no, solo me llega el marcado con un on, y el no marcado me lo borra, es decir que recibo solo 1 valor, y me da error, en el servidor.
Si alguien me pudiera ayudar a sacar esto, que seguro es una simplicidad, pero no sé cómo hacerlo
Valora esta pregunta


0