返回checkBox选中null

时间:2016-01-20 12:58:40

标签: php

我在php文件中获取所选复选框的值时遇到问题

 <div class="form-group">
    <label for="obj">Objetivos PAE <a href="#" id="trigger">(Ver aqui)</a></label><br>
    <div id="pop-up">
        <h3>Objetivos PAE</h3>
        <p>
        <ol>
        <li>Reduzir a taxa de abandono escolar e melhorar os resultados escolares</li>
        <li>Reduzir os casos de indisciplina</li>
        <li>Promover a diversidade de atividades enquadradas nos conteúdos programáticos e / ou promovidas pela Escola</li>
        <li>Aumentar o envolvimento das famílias e da Comunidade Educativa na Escola</li>
        <li>Melhorar a organização curricular e pedagógica</li>
        <li>Promover a aferição da qualidade dos serviços</li>
        </ol>
        </p>
    </div>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="1º" >1º Objetivo</label>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="2º" >2º Objetivo</label>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="3º" >3º Objetivo</label>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="4º" >4º Objetivo</label>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="5º" >5º Objetivo</label>
    <label class="checkbox-inline"><input type="checkbox" id="obj[]" name="obj[]" value="6º" >6º Objetivo</label>
</div>

这是我发送表单的jquery ajax

.on('success.form.fv', function(e) {
    e.preventDefault();
    var $form = $(e.target),
        fv    = $form.data('formValidation');
    $.ajax({
        url: 'updates.php',
        type: 'POST',
        data: $form.serialize(),
        success: function(data){
            var result = data.status;
            console.log(result);
            if(result === 'success'){
               alert("ok");
            }
            else{
                alert("erro");
            }
        }
    });
});

我已收到所有数据,但未收到用户检查的值 在fiddler我可以看到所有数据都被传递但在我的帖子php中复选框的值是空的

这是我的php

if ($novoPae != null) {
    $idutilizador = filter_input(INPUT_POST, 'userid');
    $cargo = filter_input(INPUT_POST, 'cargo');
    $des = filter_input(INPUT_POST, 'desc');
    $obj = filter_input(INPUT_POST, 'obj');
    $periodo = filter_input(INPUT_POST, 'periodo');
    $previsto = filter_input(INPUT_POST, 'previsto');
    $data = filter_input(INPUT_POST, 'data');
    $orcamento = filter_input(INPUT_POST, 'orcamento');
    $destinatarios = filter_input(INPUT_POST, 'destinatarios');
    $obs = filter_input(INPUT_POST, 'obs');
    echo $obj;
   /* $ret = $ebspma->novoPae($cargo, $idutilizador, $novoPae, $des, $obj, $periodo, $previsto, $data, $orcamento, $destinatarios, $obs);
    echo json_encode($ret);*/
}

来自fiddler我在sintaxView中有这个

  

货物= 171安培; novoPae = Atividade&安培; DESC = Descri%C3%A7%C3%A 3 O&安培; ** OBJ%5B%5D = 2%C2%BA&安培;物镜%5B%5D = 3%C2%BA&安培;物镜%5B%5D = 4%C2%BA&安培; ** periodo = 2%C2%BA + Periodo&安培; previsto = Fevereiro&安培;数据=二○一五年十二月十四日&安培; orcamento =或%C3%A7amento&安培; destinatarios = Destinat%C3%A1rios&安培;观测值=天文台%C3%A7%C3%B5es&安培;用户ID = 1261

1 个答案:

答案 0 :(得分:0)

问题在于您使用filter_input()。默认情况下,filter_input()不处理数组。

我的测试表格:

<form method="post">
    <input type="text" name="foo[]" value="anne">
    <input type="text" name="foo[]" value="bob">
    <button type="submit">submit</button>
</form>

首次测试结果:

$foo = filter_input(INPUT_POST, 'foo');
var_dump($foo);
// bool(false)

如果要检索数组,则必须指定选项FILTER_REQUIRE_ARRAY

$foo = filter_input(INPUT_POST, 'foo', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
var_dump($foo);
// array(2) { [0]=> string(4) "anne" [1]=> string(3) "bob" }