Bonjour la communauté
Celà fait un petit moment que je cherche et là je séche un peu!

le sujet:
Comment peux t'on recuperer l'url d'une page dans le navigateur et se servir de cette information pour changer le n° d'une liste d'une newsletter

ex j ai url http://www.xxxxxx.com/index.php?langue=fr sur le navigateur

et j aimerai que dans mon formulaire
le n° de liste change selon la langue
form method="post" action="http://www.xxxxx.com/toto/newsletter/newsletter.php"> 
Adresse email : <input type="text" name="email" maxlength="100" /> &nbsp; 
<input type="hidden" name="format" value="2" /> 
<input type="hidden" name="liste" value="6" /> ici le changement 

j ai : http://www.xxxxxx.com/index.php?langue=en
j'aimerai que value="6" de la liste change automatiquement en value="2"
ou tout autre valeur selon la langue indiquée dans url

je pense que cette fonction $_SERVER['REQUEST_URI']; permet de recuperer url de la page
mais je ne sais pas la mettre en place et recuperer la variable langue=fr ou langue= en
pour modifier la value de la liste concernée.

j ai pensé à ceci
<?php
$langues = array('fr' => 6, 'en' => 7, );
$valeur = isset($langues[$_GET['langue']]) ? $langue[$_GET['langue']] : 1;
?>


<input type="hidden" name="liste" value="<?php echo $valeur; ?>" 


Merci à vous! pour votre aide futur

William_13
Modifié par william_13 (12 Nov 2009 - 18:23)
william_13 a écrit :
j ai pensé à ceci
<?php
$langues = array('fr' => 6, 'en' => 7, );
$valeur = isset($langues[$_GET['langue']]) ? $langue[$_GET['langue']] : 1;
?>
<input type="hidden" name="liste" value="<?php echo $valeur; ?>"

Et ça ne fonctionne pas ? $_GET['langue'] est bien ce qui te permet de récupérer le "fr" (dans ton exemple), par contre pas sûre que ton tableau soit fonctionnel, le plus simple serait de faire un switch (ou un if si tu n'as que deux langues) :
$lang = $_GET['langue']; 
switch($lang){
  "fr" : $liste = 6; break;
  "en" : $liste = 7; break;
  default : $liste = 0; break;
}
Bonjour Laurie-Anne
merci d'avoir répondu
je vais essayer le code que tu m as gentiment concocté

william_13 Smiley smile

Aprés la mise en place du code
je me retrouve avec ceci:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_CASE or T_DEFAULT or '}' 


alors j ai fait ceci!

 formulaire:
<tr><td class="normal" width="220"><?echo SUBSCRIBE;?> </td></tr>


<?
$valeur = isset($langues[$_GET['langue']]) ? $langue[$_GET['langue']] : 1;
switch($valeur){
case "fr" : $liste = 6; 
case "en" : $liste = 7;
 break;
default : $liste = 1; 
break;
}
?>

<br />

<tr><td class="normal" width="300">
<form method="post" action="http://www.000.com/newsletter.php">
<?echo EMAIL;?> : <input type="text" name="email" maxlength="100" /> &nbsp; 
<input type="hidden" name="format" value="2" />
<input type="hidden" name="liste" value="$valeur">
<br />

newsletter.php
ceci:

mysql_query("
	INSERT INTO wa_abonnes (
		abo_email, abo_status, abo_lang
	) VALUES (
		'$email'
		,'$valeur'
		,'francais'		
	)") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());
		
	$aboid = mysql_insert_id();
	
	$generate_key = generate_key(20, false);
	
	$current_time = time();
	
	mysql_query("
	INSERT INTO wa_abo_liste (
		abo_id, liste_id, format, send, register_key, register_date, confirmed
	) VALUES (
		'$aboid'
		,'$valeur'
		,'2'
		,'0'
		, '$generate_key'
		, '$current_time'
		, '1'
	)") or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

lorsque je valide celà va toujours sur la liste 1 par default!



as tu une idée
merci encore
william_13
Modifié par william_13 (12 Nov 2009 - 18:41)
Pour moi en javascript

var url=location.href;
var p=url.indexOf("?langue="); // extraction du parametre
if(p>0) lang=url.substring(p+8);

Ensuite suivant lang qui n'existe que si p>0
on affecte au formulaire la valeur que l'on veut.
Modifié par akiki (12 Nov 2009 - 02:07)
Bonsoir akiki

var url=location.href;
var p=url.indexOf("?langue="); // extraction du parametre
if(p>0) lang=url.substring(p+8);

comment recuperes tu les paramètres de variable de url ?langue=fr

on affecte au formulaire la valeur que l'on veut
la valeur= id de la liste = ex 4 si ?langue=fr
mais je n arrive pas à saisir la manière
william_13 a écrit :
Bonsoir akiki

var url=location.href;
var p=url.indexOf("?langue="); // extraction du parametre
if(p>0) lang=url.substring(p+8);

comment recuperes tu les paramètres de variable de url ?langue=fr

on affecte au formulaire la valeur que l'on veut
la valeur= id de la liste = ex 4 si ?langue=fr
mais je n arrive pas à saisir la manière


Bonjour,
Et bien j'écrirai :

if(lang=="fr") val=4;

A charge ensuite de remplir le formulaire avec cette valeur.

document.getElementById("id_du_champ").value=val;
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Bonsoir Mikachu

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

j'ai étè voir ici!
13
Mise en forme générale des messages

c'est vrai que je n'ai pas pensé à faire une présentation de mon probléme en conformité
avec cette régle.

Je m'en excuse ! si celà à déranger la communauté !