我正在使用AJAX来获取在select输入中选择的元素的值,并启动一个返回一些输入复选框字段的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 / AJAX
$("#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&amp; amp; JQuery,所以我不知道该怎么做。我尝试使用JQuery提交表单,没有做任何更改。
答案 0 :(得分:1)
当您返回复选框时我遇到了您的问题,您的错误是元素的名称属性。
在您的代码中"name=tabreffab[]"
替换为name = "tabreffab[]"
$ chaine。=&#39;&#39;。$ fab。&#39;&#39;;
上面的内容如下所示:
$chaine .= '<input type="checkbox" name = "tabreffab[]" id="'.$fab.'" value="'.$fab.'" /><label for="'.$fab.'">'.$fab.'</label>';
答案 1 :(得分:0)
复选框值仅在选择值
时显示在$ _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>
答案 2 :(得分:-1)
问题在于您的Ajax调用,特别是在data
部分。它需要一个json格式的对象。写这篇文章的正确方法是data:{id_turbo:"id_turbo_value"}
,而不是您使用的方式 - data: "id_turbo="+id_turbo+""