Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 03 December 2007 14:25

cyohann
Participant occasionnel
Lieu: Oloron Sainte Marie
Date d'inscription: 16 Oct 2005
Messages: 15
Site web

[CartoWeb] problème plugin pour zoomer sur une commu

Bonjour à tous,

J'ai essayé de mettre en place une fonction de zoom sur un polygone.
L'utilisateur choisi un département dans une liste déroulante, et en fonction du département, une liste de commune est proposé.

Pour faire cela, j'ai procédé ainsi :
- création des raccourcis des départements et des communes dans monprojet/server_conf/monprojet/location.ini
- modification de monprojet/coreplugins/location/templates/shortcuts.tpl
- ajout des fonctions javascript pour initialiser la liste de mes communes en fonction du département choisi dans monprojet/htdocs/js/shortcuts_reg.js
- intégration dans monprojet/templates/cartoclient.tpl
- activation du plugin dans monprojet/server_conf/monprojet/monprojet.ini


Voici les codes :

shortcuts_reg.js :

function maj_com(dept) {
document.getElementById('departement').disabled="t rue";

if (dept==02){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=10;i<=827;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);}
}

if (dept==14){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=828;i<=1534;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);}
}

if (dept==27){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=1535;i<=2210;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==50){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=2211;i<=2812;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==59){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=2813;i<=3463;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==60){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=3464;i<=4158;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==61){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=4159;i<=4667;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==62){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=4668;i<=5572;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==76){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=5573;i<=6318;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

if (dept==80){
j=0;
document.getElementById('communes').options[j] = new Option("","");
for (i=6319;i<=7102;i++){
j++;
document.getElementById('communes').options[j] = new Option(document.getElementById('shortcut_id').opti ons[i].text,document.getElementById('shortcut_id').optio ns[i].value);} }
}

function zoom() {
i=document.getElementById('communes').options[document.getElementById('communes').options.select edIndex].value;
i=parseInt(i)+1;
document.getElementById('shortcut_id').options[i].selected = true;
document.carto_form.shortcut_doit.value=1;
FormItemSelected();
}


cartoclient.tpl :

<div id="folder2" class="folder">
{if $id_recenter_active|default:''}
{$id_recenter}
{/if}
{if $shortcuts_active|default:''}
{$shortcuts}
{/if}
<table>
<td>
{t}Departement{/t}
<br><br>
{t}Commune{/t}
</td>
<td>
<SELECT NAME="departement" ID="departement" onChange="maj_com(departement.value);">
<OPTION VALUE="">
<OPTION VALUE="02">Aisne
<OPTION VALUE="14">Calvados
<OPTION VALUE="27">Eure
<OPTION VALUE="50">Manche
<OPTION VALUE="59">Nord
<OPTION VALUE="60">Oise
<OPTION VALUE="61">Orne
<OPTION VALUE="62">Pas-de-Calais
<OPTION VALUE="76">Seine-Maritime
<OPTION VALUE="80">Somme
</SELECT>
<br><br>
<SELECT NAME="com_dept" ID="com_dept" onChange="zoom();" style='width: 200px' >
</SELECT>
</td>
</table>
</div>


Mon problème vient du fait que je peux sélectionner un département dans ma liste déroulante, mais ensuite ma liste de communes n'est pas initialisée.
J'ai l'impression que mon javascript (shortcuts_reg.js) n'est pas pris en compte.

Quelqu'un a t-il une solution ?
Avez-vous déjà réalisé cette fonction ?

Merci bien
Yohann

Dernière modification par cyohann (Mon 03 December 2007 15:17)

Hors ligne

 

Pied de page des forums

Powered by FluxBB