/gespac/modules/export/export_perso.php

http://gespac.googlecode.com/ · PHP · 148 lines · 89 code · 39 blank · 20 comment · 24 complexity · ac0b21ab180b6a9836b7e9aa834d6525 MD5 · raw file

  1. <script type="text/javascript">
  2. /******************************************
  3. *
  4. * AJAX
  5. *
  6. *******************************************/
  7. window.addEvent('domready', function(){
  8. $('post_form').addEvent('submit', function(e) { // Pour poster un formulaire
  9. new Event(e).stop();
  10. new Request({
  11. method: this.method,
  12. url: this.action,
  13. onSuccess: function(responseText, responseXML) {
  14. $('targetback').setStyle("display","block"); $('target').setStyle("display","block");
  15. $('target').set('html', responseText);
  16. //window.setTimeout("document.location.href='index.php?page=wol'", 2500);
  17. }
  18. }).send(this.toQueryString());
  19. });
  20. });
  21. </script>
  22. <div class="entetes" id="entete-exportperso">
  23. <span class="entetes-titre">EXPORT PERSONNALISE<img class="help-button" src="<?PHP echo ICONSPATH . "info.png";?>"></span>
  24. <div class="helpbox">Permet de créer un fichier CSV avec des champs personnalisés de la base Gespac.</div>
  25. </div>
  26. <div class="spacer"></div>
  27. <form action="modules/export/post_export_perso.php" method="post" name="post_form" id="post_form">
  28. <input type=checkbox class=chkbox id=mat_nom> Nom du matériel <br>
  29. <input type=checkbox class=chkbox id=mat_dsit> Numéro d'inventaire <br>
  30. <input type=checkbox class=chkbox id=mat_serial> Numéro de série <br>
  31. <input type=checkbox class=chkbox id=mat_etat> Etat du matériel<br>
  32. <input type=checkbox class=chkbox id=mat_origine> Origine du matériel <br>
  33. <input type=checkbox class=chkbox id=salle_nom> Salle du matériel <br>
  34. <input type=checkbox class=chkbox id=marque_type> Type du matériel <br>
  35. <input type=checkbox class=chkbox id=marque_stype> Sous-type du matériel <br>
  36. <input type=checkbox class=chkbox id=marque_marque> Marque du matériel <br>
  37. <input type=checkbox class=chkbox id=marque_model> Modčle du matériel <br>
  38. <input type=checkbox class=chkbox id=user_nom> Pręté ŕ <br>
  39. <br>
  40. <br><br>
  41. <div id="log"></div>
  42. <input type=hidden name=rqsql id=rqsql />
  43. <input type=submit onclick="add_field()" value="Lancer l'export personnalisé">
  44. </form>
  45. <script>
  46. function add_field () {
  47. var query_select = "";
  48. var query_from = "materiels";
  49. var query_where = "";
  50. var thereis_salles = false;
  51. var thereis_marques = false;
  52. var thereis_users = false;
  53. var nb_champs = 0;
  54. $$('.chkbox').each(function (item) {
  55. // Si la case en question est cochée
  56. if ( $(item.id).checked ) {
  57. // On incrémente le nombre de champs
  58. nb_champs++;
  59. // On rajoute ŕ la partie query le champ courant
  60. query_select += item.id + ",";
  61. // si c'est un champ de la table "salles"
  62. if ( item.id == "salle_nom" ) { thereis_salles = true; }
  63. // si c'est un champ de la table "marques"
  64. if ( item.id == "marque_type" || item.id == "marque_stype" || item.id == "marque_marque" || item.id == "marque_model") { thereis_marques = true; }
  65. // si c'est un champ de la table "users"
  66. if ( item.id == "user_nom" ) { thereis_users = true; }
  67. }
  68. })
  69. // Si jamais il y a des champs de la table "salles" on rajoute au FROM et au WHERE
  70. if ( thereis_salles ) {
  71. query_where += "materiels.salle_id = salles.salle_id AND ";
  72. query_from += ",salles";
  73. }
  74. // Si jamais il y a des champs de la table "marques" on rajoute au FROM et au WHERE
  75. if ( thereis_marques ) {
  76. query_where += "materiels.marque_id = marques.marque_id AND ";
  77. query_from += ",marques";
  78. }
  79. // Si jamais il y a des champs de la table "users" on rajoute au FROM et au WHERE
  80. if ( thereis_users ) {
  81. query_where += "materiels.user_id = users.user_id AND ";
  82. query_from += ",users";
  83. }
  84. if ( query_select != "" ) {
  85. // on vire la derničre virgule
  86. query_select = query_select.substr(0, query_select.length-1);
  87. // on rajoute SELECT
  88. query_select = "SELECT " + query_select;
  89. }
  90. if ( query_from != "" ) {
  91. query_from = " FROM " + query_from; }
  92. if ( query_where != "" ) {
  93. // on vire le dernier AND
  94. query_where = query_where.substr(0, query_where.length-5);
  95. // on rajoute WHERE
  96. query_where = " WHERE " + query_where;
  97. }
  98. // On affiche
  99. if ( nb_champs > 0) $('rqsql').value = query_select + query_from + query_where;
  100. else $('log').innerHTML = "Faudrait au moins cocher une case";
  101. }
  102. </script>