将post方法与php、ajax和javascript结合使用


Using post method with php,ajax and javascript

我很难将输入的值从页面上的一个表单传递到另一个表单,所以下面是代码:(附言:我是法国人,很抱歉。如果我的语法不好,我希望它可以理解)这是我的页面,表单为:

编辑:我在这张表格上犯了两个错误,现在已经更正了。首先,我忘记了"周围的mission_trans_select:onclick="document.getElementById('mission_trans_select').value=(this.value)其次,value="<?php echo $line['MIS_ID_MISSION']; 中缺少一个echo

<html>
<form name="fListTran" id="fListTran" method="POST" action="index.php?page=missiontransfert">
    <div class="container">    
        <div id="loginbox"  class="mainbox col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">     
            <div class="text-center">
                <div class="panel panel-primary" >
                    <div class="panel-heading">
                        <div class="panel-title"><strong>Liste des missions de transfert</strong></div>
                        <div id="float"><a href="#"></a></div>
                    </div> 
                    <div class="panel-body" >
                        <input name='name' id='mission_trans_select' type='hidden' value='' />
                            <strong>
                            <?php
                                echo "Il y a : ".$_Nbr_Missions_." missions trouvée(s).";
                                For($i=1;$i<=$_Nbr_Missions_;$i++){ //peut être mettre un max et donc tester le nombre de resultat
                            ?>
                            </strong>
                            <div class="btn-group-justified" id="mis-tran">
                            <a href="index.php?page=missiontransfert">
                                <button class="btn btn-default btn-lg btn-block" name="mission_tran" id="<?php echo $i ;?>" type="submit" value="<?php echo $line['MIS_ID_MISSION']; ?>" onclick="document.getElementById('mission_trans_select').value=(this.value);">
                                <?php 
                                    echo $line['MIS_ID_MISSION'] .' - [' . $line['MIS_ID_DO'] . '] Emplacement actuel : ' 
                                            . $line['MIS_ID_AREA_SRC'] .'-'.$line['MIS_ID_BAY_SRC'].'-'.$line['MIS_ID_RACK_SRC'].'-'
                                            . $line['MIS_ID_STAGE_SRC'] .'<br> Priorité : '.$line['MIS_PRIORITE']
                                            .'- Produit : '.$line['PRO_LITERAL'] ; 
                                ?>
                                </button> 
                            </a>
                        </div>  
                        <?php
                            $line = oci_fetch_array($reqMisTranCount, OCI_ASSOC);
                            }
                        ?>
                        <a id="retour" class="btn btn-lg btn-warning btn-block" href="index.php?page=menu">
                            <span  class="fa fa-arrow-circle-left"></span> Retour</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </form>

因此,为了解释它,我显示了一个任务列表,由用户可以点击的按钮表示,每个按钮都链接到我想要显示的页面,以及需要与按下的按钮相关联的值的其他表单。

因此,由于按钮的id取决于我从选择查询中获得的行数,我没有在这里显示,但这很好,我无法从中获得值,所以单击按钮时,我将隐藏输入的值设置为它的值。

动作的形式是:index.php?page=missiontransfert,所以在索引页面中,我调用了我的脚本loadJS.php,在那里我试图使用ajax的post方法,但我没有得到它。以下是我目前所做的:

<script>
if (document.getElementById("mission_trans_select").value!=''){
    var mis_id = document.getElementById("mission_trans_select").value;
}
function get_mis_id(element){                    
    var xmlhttp=new XMLHttpRequest();
    xmlhttp.open("POST","./ajax/ajaxlistetransfert.php",true);
    xmlhttp.setRequestHeader("Content-Type", "./transfert_list.php");
    xmlhttp.send(mis_id);
}
</script>

我不知道这是正确的还是好的方法…而且我也不知道该在我的ajax文件(ajaxlistetransfert)中放入什么

最后,这是在我的文件missiontransfert.php:中获得发布结果的好方法吗

$_SESSION['MISMISSION']=$_POST['name'];

"name"是我第一个表单中隐藏输入的名称。谢谢你的帮助和时间!

由于您已将jQuery包含在问题标签中,因此可以使用简化的POST请求语法:

$.post('/ajax/ajaxlistetransfert.php',{
    mission_id: your_variable_holding_the_id
},function(result){
    alert(result); // alerts output of requested file.
})

让您的ajax PHP文件在数据库/文件上使用$_POST['mission_id']进行必要的操作,并回显输出

(即"success"/"failure"字符串或可以附加到请求页面的表单元素代码)

然后javascript可以将其访问为result