Javascript 使用mysql、php、js在html表中显示数据库结果

Javascript 使用mysql、php、js在html表中显示数据库结果,javascript,php,mysql,Javascript,Php,Mysql,我有一个html页面,表单包含三个select查询选项。我需要创建一个可以接收和显示数据的表,我需要使用一个已经编写好的javascript文件来完成这项工作。遵循这些约束条件,我不确定如何设置表的输出格式。代码如下: /** Comportements.js ******/ $(document).ready( function() // Fonction anonyme principale { // Ecouteur d'événement $('form').subm

我有一个html页面,表单包含三个select查询选项。我需要创建一个可以接收和显示数据的表,我需要使用一个已经编写好的javascript文件来完成这项工作。遵循这些约束条件,我不确定如何设置表的输出格式。代码如下:

/** Comportements.js ******/
$(document).ready(

function() // Fonction anonyme principale
{
    // Ecouteur d'événement 
    $('form').submit(executerRequete) ;
    console.log("***** Exécution du programme javascipt *****"); 


    /*** Gestionnaire d'événement **/
    function executerRequete(evt)
    {
        // Pour manipuler le formulaire
        let $form = $(this) ;

        // Quel formulaire a été utilisé ?
        let idForm = $form.attr("id") ;
        let BDLocale = idForm=="pourBDetd" ;

        console.log("Bonjour, je suis la fonction javascript qui s'exécute après la validation du formulaire "+ idForm)
        // Empêcher le comportement par défaut lié à cet événement, c'est-à-dire le rechargement de la page
        evt.preventDefault() ;
        // Récupérer le texte de la requete

        // Supprimer l'entête de la table éventuellement présente dans la page
        $('.sortieBD thead').remove() ;

        // Supprimer le corps de table éventuellement présent dans la page
        $('.sortieBD tbody').remove() ;

        // Supprimer le message d'érreur éventuellement présent
        $('.messageErreur').text('') ;


        let texteRequete = $form.find('[name=requeteChoisie]').val() ;
        console.log("\t J'ai récupéré ce texte de requête : "+ texteRequete) ;


        let adresseDesDonnees ;  
        if(BDLocale) 
        {  adresseDesDonnees = "php/soumettreRequete.php" ;
            console.log("\t Nous allons travailler sur la BD locale de l'étudiant") ;
        }
        else
        {  
            adresseDesDonnees = "https://web2noninfo.lpmiaw.univ-lr.fr/ISI/projet/api/soumettreRequete.php" ;
            console.log("\t Nous allons travailler sur la BD d'un enseignant") ;
        }
        console.log("\t J'envoie la requête à l'adresse "+adresseDesDonnees)
         let optionsAjax = 
            {
            "url" : adresseDesDonnees, // où aller chercher les données    
                "dataType" : "json", // Sous quel format les récupérer
                "type" :"POST",
                "data" : {"texteRequete" : texteRequete }
            } ;
        // Appel Ajax
        var promesseRequete = $.ajax(optionsAjax) ;

        // Le résultat d'un appel Ajax est une promesse, qui peut être tenue ou pas

        // En cas de promesse non tenue (échec de l'appel Ajax), exécuter la fonction erreurAjax
        promesseRequete.fail(erreurAjax);

        // En cas de réussite de l'appel Ajax, exécuter la fonction afficherResultat
        promesseRequete.done(afficherResultatsRequete);
    }


     // Fonction dont l'exécution est déclenchée si l'appel Ajax échoue
    function erreurAjax()
    { 
        console.log("Une erreur Ajax s'est produite, je ne peux pas récupérer les données !") ;
        $('.messageErreur').text('Erreur Ajax !')
    }

    function afficherResultatsRequete(enregistrements)
    {
        console.log("L'appel Ajax permettant de récupérer les infos des utilisateurs a fonctionné !") ;
        console.log("Voici la donnée fournie par le prog php : ") ;
        console.log(enregistrements) ;
        // la variable utilisateurs contient un tableau de données
        // Pour chaque élément de ce tableau, exécuter la fonction afficherUnUtilisateur
        if (false) // Détecter une réponse erronée
        {    erreurAjax()
        }
        else
        {
            let $table=$('.sortieBD table') ;
            // Créer le corps de la table
            var $tbody = $('<tbody>') ;
            var $thead = $('<thead>') ;

            // Créer l'entête du tableau 
            let nomDesChamps = Object.keys(enregistrements[0]) ;
            let $tr=$('<tr>');
            nomDesChamps.forEach(
                function(unChamp)
                {
                    let $th=$('<th>').text(unChamp) ;
                    $tr.append($th) ;
                }
            );// fin forEach
            $thead.append($tr) ;
            $table.append($thead) ;

            // Pour chaque élément du tableau enregistrements, l'afficher
            $(enregistrements).each(
                function()
                {
                    let $ligne = $('<tr>') ;
                    let enregistrement = this ;
                    nomDesChamps.forEach(
                        function(unChamp)
                        {
                            let $td = $('<td>').text(enregistrement[unChamp]) ;
                            $ligne.append($td) ;
                        }
                    );// fin forEach
                    $tbody.append($ligne) ;
                }
            ) ;
            $table.append($tbody) ;
        }


    } // fin de afficherResultatsRequete




} // Fin de la fonction anonyme principale


  ); // Fin $(document).ready
/**Comportements.js******/
$(文件)。准备好了吗(
function()//函数匿名原则
{
//德维内门特生态园
$('form')。提交(executerRequete);
console.log(“******程序执行javascipt****”);
/***维尼门特酒店**/
函数执行器请求(evt)
{
//曼尼普勒公式酒店
设$form=$(this);
//你是说什么?
设idForm=$form.attr(“id”);
让BDLocale=idForm==“pourBDetd”;
log(“大家好,我喜欢用javascript做公式验证”+idForm)
//EMP-ECHPLE LealCalpTr.P.E.F.E.E.
evt.preventDefault();
//这是一个很好的例子
//提供一张桌子供客人用餐
$('.sortieBD thead').remove();
//餐桌上的食物供应员给了丹尼斯·拉佩奇
$('.sortieBD tbody').remove();
//已发送补充信息
$('.messageErreur').text('');
让texteRequete=$form.find('[name=requeteChoisie]').val();
console.log(“\t J'ai récupéréce texte de requuête:“+texteRequete”);
让肾上腺皮质激素;
if(BDLocale)
{adrensedesdonnees=“php/soumettreRequete.php”;
console.log(“\t Nous allons travailler sur la BD locale de l'tudiant”);
}
其他的
{  
肾上腺皮质激素=”https://web2noninfo.lpmiaw.univ-lr.fr/ISI/projet/api/soumettreRequete.php" ;
console.log(“\t Nous allons travailler sur la BD d'un ensignant”);
}
console.log(“\t J'envoie la requuêteál'adresse”+ADRessedesdonees)
让选项ajax=
{
“url”:adresedesdonnees,//oùaller chercher les donnees
“数据类型”:“json”//Sous quel格式的les récupérer
“类型”:“职位”,
“数据”:{“texteRequete”:texteRequete}
} ;
//阿佩尔阿贾克斯酒店
var promesseRequete=$.ajax(选项ajax);
//阿贾克斯上诉的结果是一个和平的承诺
//这是一种不可剥夺的权利(阿贾克斯上诉法院),是阿贾克斯法院的法官
promesseRequete.fail(erreurAjax);
//在阿贾克斯上诉法院,法院判决成立
承诺完成(附上结果请求);
}
//不要在阿贾克斯乔的上诉中执行死刑
函数erreurAjax()
{ 
log(“这是阿贾克斯最伟大的作品,我是世界杯冠军!”);
$('.messageErreur').text('Erreur Ajax!')
}
函数AfficherResultsRequeste(注册)
{
console.log(“我的阿贾克斯足球俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部俱乐部”);
控制台。日志(“VoICI La Dunne e FueNe Par Le Pro PHP:”);
控制台日志(注册);
//变量利用率持续变化
//请将餐桌上的茶点,放在丰盛的菜肴上
if(false)//Détecter une réponse erronée
{erreurAjax()
}
其他的
{
设$table=$('.sortieBD table');
//桌子上的兵团
变量$tbody=$('');
变量$thead=$('');
//台词
设nomDesChamps=Object.keys(注册表项[0]);
设$tr=$('');
诺姆德尚·弗雷赫(
功能(unChamp)
{
设$th=$('').text(unChamp);
$tr.append($th);
}
)//fin forEach
$thead.append($tr);
$table.append($thead);
//在登记表上填写表格,l'afficher
$(注册)。每个(
函数()
{
设$ligne=$('');
让登记=这个;
诺姆德尚·弗雷赫(
功能(unChamp)
{
让$td=$('').text(注册[unChamp]);
$ligne.append($td);
}
)//fin forEach
$tbody.append($ligne);
}
) ;
$table.append($tbody);
}
}//最终确认结果请求
}//原则基金会
); // Fin$(文件)。准备好了吗
我将对数据库中的一个表进行三次select查询,该表有四列;id、铭牌、价格和类型

在我看来(尽管不是JS专家),PHP代码需要对查询结果数组进行JSON编码,以将其返回给调用的JS。JS函数将每个数组键显示为表头,然后循环遍历所有数组元素并将其作为表行追加。虽然在我看来,它看起来也像是打开了各种与表相关的HTML标记,但从未关闭它们,也许其他东西会自动关闭它们


当您尝试使用它时,添加了一些
console.log
,会发生什么情况?

这肯定是一个问题,您可以通过搜索找到答案