在AJAX和php脚本未转移到$ _POST后添加的表单元素

时间:2016-05-04 10:06:17

标签: javascript php jquery html ajax

我正在使用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提交表单,没有做任何更改。

3 个答案:

答案 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+""