PHP - boolean intentando borrar varios registros

   
Vista:
Imágen de perfil de victor

boolean intentando borrar varios registros

Publicado por victor (7 intervenciones) el 07/06/2016 12:28:28
Intento borrar varios registros con un checkbox, pero me sale el array como boolean cada registro.


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
function displayUserUrl($urlArray){
    global $bm_table;
    $bm_table = TRUE;
    ?>
<table style="width: 300px;" id="delete">
    <form name="bm_table" action="deleteBms.php" method="post">
        <tr>
            <th>Marcador</th>
            <th>Borrar?</th>
        </tr>
        <?php
        if(is_array($urlArray) && count($urlArray)>0){
            foreach ($urlArray as $url){
                ?>
            <tr>
                <td><a href="<?=$url?>"><?=htmlspecialchars($url)?></a></td>
                <td><input type="checkbox" name="del_me[]" value="<?=$url?>"/></td>
            </tr>
            <?php
            }
        }else{
            echo "<tr><td>No hay marcadores en el registro.</td></tr>";
        }
        ?>
    </form>
</table>
<?php
}

Abajo es la pagina donde borro deleteBms.php

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
<?php
 
include 'includes.inc';
 
session_start();
 
$del_me[] = filter_input(INPUT_POST, "del_me");
 
doHtmlHeader("Borrar marcadores", "página para borrar marcadores", "borrar, marcador, marcadores");
 
checkValidUser();
 
if(!filledOut($_POST)){
    echo "<p>No has escrito ningún marcador para borrar. Prueba de nuevo, por favor.</p>";
    displayUserMenu();
    do_html_footer();
    exit();
}else{
    if(count($del_me) > 0){
        foreach ($del_me as $url){
            if(deleteBm($_SESSION['userName'], $url)){
                echo "<p>Borrado ".htmlspecialchars($url)."</p>";
            }else{
                echo "<p>No pudo borrarse ".htmlspecialchars($url)."</p>";
            }
        }
    }else{
        echo "<p>No hay marcador seleccionado para borrarse.</p>";
    }
}
 
if($urlArray = getUserUrl($_SESSION['userName']));
    displayUserUrl($urlArray);
 
    displayUserMenu();
 
    do_html_footer();


Si quito los corchetes de name = "del_me[]" en el formulario en displayUserUrl(se me borra solo un registro ya que me sale un string. Pero si mantengo los corchetes me sale el valor como boolean.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de victor

boolean intentando borrar varios registros

Publicado por victor (7 intervenciones) el 07/06/2016 13:26:30
Ya esta resuelto, muchas gracias si alguien intento responderme. El fallo estaba en

1
$del_me[] = filter_input(INPUT_POST, 'del_me');

ya que no se porque parece ser que no recoge arrays.

Y he puesto:

1
$del_me = $_POST['del_me'];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de kip

boolean intentando borrar varios registros

Publicado por kip (562 intervenciones) el 07/06/2016 19:31:51
Hola, si quieres filtrar podrias hacer esto:

1
2
3
4
5
6
7
8
9
<?php
$array = $_POST['del_me'];
$i=0;
foreach($array as $k => $v){
    $array[$i] =  filter_var($v, FILTER_SANITIZE_ENCODED);
    $i++;
}
var_dump($array); //hacemmos una prueba a ver si nos muestra cada valor filtrado
?>

Espero te sirva.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de victor

boolean intentando borrar varios registros

Publicado por victor (7 intervenciones) el 08/06/2016 11:10:59
muchas gracias kip, lo he utilizado y me viene bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar