我在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
答案 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" }