我使用AJAX来获取在选择输入中选择的元素的值,并启动一个返回一些输入复选框字段的PHP脚本。
以下是它的样子:
HTML
<form method="post" action="liens_chra.php" name="Form" id="Form">
<label for="id_turbo">Turbo</label>
<select name="id_turbo" size="1" id="id_turbo">
<option value="10970">TM1761178</option>
<!-- and more -->
</select>
<div id="choix_reffab">
<!-- checkboxes appear here -->
</div>
<p class="form ">
<input type="submit" name="valider" value="Enregistrer">
</p>
<!-- something I tried too
<input type="button" id="submitevent" value="Enregister">
<script type="text/javascript" >
$('#submitevent').click(function() {
$("#Form").submit();
});
</script> -->
</form>
JQuery/AAJAX
$("#id_turbo").change(function(){
var id_turbo = $("#id_turbo").val();
$.ajax({type: "POST",
url: "<?=URLSITEWEB;?>admin/outils/ajax/liste_Reffab.php",
data: "id_turbo="+id_turbo+"",
error: function(){
/*alert(id_famille+" 'n ne passent pas.");*/
},
success: function(data){
$("#choix_reffab").html(data);
}
});
});
PHP
/* things */
foreach ($fabTab as $fab) {
$chaine .= '<input type="checkbox" "name=tabreffab[]" id="'.$fab.'" value="'.$fab.'" /><label for="'.$fab.'">'.$fab.'</label>';
}
echo $chaine;
因此,当用户选择一个值时,会出现一些复选框。我的问题是我想要的数据没有传输到$_POST,结果是:
var_dump($_POST['tabreffab']) // is NULL, others values are ok
我对AJAX&JQuery,所以我不知道该怎么办。我试着用JQuery提交表单,没有做任何更改。
当您返回复选框时,我收到了您的问题,您的错误是在元素的name属性。
在您的代码中"name=tabreffab[]"
替换为name = "tabreffab[]"
$chaine.="$fab.";
上面写的像下面写的代码
$chaine .= '<input type="checkbox" name = "tabreffab[]" id="'.$fab.'" value="'.$fab.'" /><label for="'.$fab.'">'.$fab.'</label>';
复选框值仅在选择值时才会显示在$_POST[]中
试用编辑器
<?php
echo "<pre>";
print_r($_POST);
?>
<form id="sampleName" name ="sampleName" method="post" action="">
<textarea id="testID" name="textAreaName"></textarea>
<input type="text" name="text1" />
<input type="checkbox" name="check" value="1"/>
<input type="checkbox" name="check" value="2"/>
<input type="checkbox" name="check" value="3"/>
<input type="submit" value="submit">
</form>
问题出在Ajax调用中,特别是data
部分。它采用json格式的对象。写这篇文章的正确方法是data:{id_turbo:"id_turbo_value"}
,而不是您使用的data: "id_turbo="+id_turbo+""