par
ItaloBADI » 06 janv. 2008, 18:02
Bonjour à tous, et bonne année !
Voilà, j'ai une question bizarre lol :
je sais qu'on peut ajouter une variable GET dans un formulaire POST.
Mais moi ce que j'aimerais faire en PHP, c'est une carte cliquable.
Je l'ai faite : elle fonctionne.
Chaque case de ma carte envoie vers la même page.
pas obligatoire mais pour info, si ça aide, le code initial de ma carte :
Code : Tout sélectionner
<table cellspacing="0" cellpadding="0" border="0">
<?
// on crée la requête SQL
$sql = "SELECT carte FROM module_bataille where atreides='".$_SESSION['login']."' OR harkonnen='".$_SESSION['login']."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
$carte=$data['carte'];
}
// Récupération ordonnée (d'abord suivant la ligne, puis suivant la colonne) des cases de la carte
$resource = mysql_query("SELECT x, y, image FROM carte where carte='$carte' ORDER BY y, x");
$current_y = -1;
while($record = mysql_fetch_array($resource))
{
// Si la ligne courante n'est pas la même que celle de l'enregistrement, on affiche la fin de la ligne et on en commence une autre
if($current_y != $record["y"])
{
// Si cas particulier du premier passage, on n'affiche pas la fin de la ligne (puisqu'il n'y en a pas encore d'ouverte)
if($current_y != -1)
{
?>
</tr>
<?
} // Fin de if($current_y != -1)
?>
<tr>
<?
// Une fois le changement de ligne fait, on met à jour la ligne courante
$current_y = $record["y"];
} // fin de if($current_y != $record["y"])
// Affichage de l'image
// on crée la requête SQL
?>
<td>
<?
// on regarde si la case est occupée par un perso
$sql = "SELECT per_nom FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) //Il en trouve un au moins
{ // on crée la requête SQL
$sql = "SELECT per_nom,per_x, per_y,per_image, per_nom, nbsoldats FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
?>
<a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$data["per_x"]?> <?=$data["per_y"]?>, <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?=$data["nbsoldats"]?> soldats )" >
<img src="style/images/<?=$data['per_image']?>.png" width="40" height="40" alt="(Coordonnées : <?=$data["per_x"]?>, <?=$data["per_y"]?>, <?echo "\n"?> <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?echo "\n"?> <?=$data["nbsoldats"]?> soldats )" style="display: block;" /></a>
<?
}
}
else // aucun perso sur cette case
{
?>
<a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>, terrain : <?=$record["image"]?> )" >
<img src="style/images/<?=$record["image"]?>.png" width="40" height="40" alt="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>,<?echo "\n"?> type de terrain : <?=$record["image"]?> )" style="display: block;" /></a>
<?
}
?></td>
<?
} // Fin de while($record = mysql_fetch_array($resource))
?>
</tr>
</table>
Ce que je voudrais faire, c'est que le visiteur mette un nom de camp dans une case, puis clique sur la carte pour positionner ce camp.
Soit en fait, que le lien sur la carte envoie vers une autre page non seulement les coordonnées x et y en GET, mais aussi le nom en POST.
J'ai tenté ça :
Code : Tout sélectionner
<form method="post">
Nom du camp : <input type="text" name="nomcamp" /><br/><br/>
( insertion ici du code de la carte ci-dessus )
</form>
Le problème est que le lien de ma carte ne peut pas activer le formulaire comme je l'aurais espéré dans mes rêves de débutant. lol
Savez-vous s'il existe une solution à mon problème ?
Solution en PHP évidemment...
Après si quelqu'un sait comment tout envoyer en GET, ça ne me dérange pas.
Merci d'avance...
Bonjour à tous, et bonne année !
Voilà, j'ai une question bizarre lol :
je sais qu'on peut ajouter une variable GET dans un formulaire POST.
Mais moi ce que j'aimerais faire en PHP, c'est une carte cliquable.
Je l'ai faite : elle fonctionne.
Chaque case de ma carte envoie vers la même page.
[u][b]pas obligatoire mais pour info[/b], si ça aide, le code initial de ma carte :[/u]
[code] <table cellspacing="0" cellpadding="0" border="0">
<?
// on crée la requête SQL
$sql = "SELECT carte FROM module_bataille where atreides='".$_SESSION['login']."' OR harkonnen='".$_SESSION['login']."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
$carte=$data['carte'];
}
// Récupération ordonnée (d'abord suivant la ligne, puis suivant la colonne) des cases de la carte
$resource = mysql_query("SELECT x, y, image FROM carte where carte='$carte' ORDER BY y, x");
$current_y = -1;
while($record = mysql_fetch_array($resource))
{
// Si la ligne courante n'est pas la même que celle de l'enregistrement, on affiche la fin de la ligne et on en commence une autre
if($current_y != $record["y"])
{
// Si cas particulier du premier passage, on n'affiche pas la fin de la ligne (puisqu'il n'y en a pas encore d'ouverte)
if($current_y != -1)
{
?>
</tr>
<?
} // Fin de if($current_y != -1)
?>
<tr>
<?
// Une fois le changement de ligne fait, on met à jour la ligne courante
$current_y = $record["y"];
} // fin de if($current_y != $record["y"])
// Affichage de l'image
// on crée la requête SQL
?>
<td>
<?
// on regarde si la case est occupée par un perso
$sql = "SELECT per_nom FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) //Il en trouve un au moins
{ // on crée la requête SQL
$sql = "SELECT per_nom,per_x, per_y,per_image, per_nom, nbsoldats FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
{
?>
<a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$data["per_x"]?> <?=$data["per_y"]?>, <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?=$data["nbsoldats"]?> soldats )" >
<img src="style/images/<?=$data['per_image']?>.png" width="40" height="40" alt="(Coordonnées : <?=$data["per_x"]?>, <?=$data["per_y"]?>, <?echo "\n"?> <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?echo "\n"?> <?=$data["nbsoldats"]?> soldats )" style="display: block;" /></a>
<?
}
}
else // aucun perso sur cette case
{
?>
<a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>, terrain : <?=$record["image"]?> )" >
<img src="style/images/<?=$record["image"]?>.png" width="40" height="40" alt="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>,<?echo "\n"?> type de terrain : <?=$record["image"]?> )" style="display: block;" /></a>
<?
}
?></td>
<?
} // Fin de while($record = mysql_fetch_array($resource))
?>
</tr>
</table> [/code]
Ce que je voudrais faire, c'est que le visiteur mette un nom de camp dans une case, puis clique sur la carte pour positionner ce camp.
Soit en fait, que le lien sur la carte envoie vers une autre page non seulement les coordonnées x et y en GET, mais aussi le nom en POST.
[u]J'ai tenté ça :[/u]
[code]<form method="post">
Nom du camp : <input type="text" name="nomcamp" /><br/><br/>
( insertion ici du code de la carte ci-dessus )
</form>[/code]
Le problème est que le lien de ma carte ne peut pas activer le formulaire comme je l'aurais espéré dans mes rêves de débutant. lol
Savez-vous s'il existe une solution à mon problème ?
Solution en PHP évidemment...
Après si quelqu'un sait comment tout envoyer en GET, ça ne me dérange pas.
Merci d'avance...