Cependant, je voudrais pouvoir réaliser des applications qui nécessitent plus que le PHP.
Mon premier projet est de faire un formulaire permettant de créer un personnage de Shadowrun. Or pour le faire, il faut effectuer un certain nombre de calculs, calculs qui dépendent des choix du joueur. J'ai réussi à mettre en place la création de personnages pour Nephilim mais il faut passer par un certain nombre de formulaires afin d'inscrire les renseignements dans la base de donnée.
Je voudrais pouvoir réaliser une création de personnage englobant l'ensemble des paramètres sur une seule feuille. Pour cela, il faut que je passe par le javascript mais j'avoue ne pas bien maîtriser les bases. Avec le PHP, à priori, les données affichées ne peuvent pas être modifiées sans actualiser la page. Avec du Javascript, on peut modifier d'une façon plus dynamique les données d'une page Internet sans avoir à actualiser la page. Mais, pour l'instant, j'ai du mal à m'en sortir avec le Javascript. Pourriez-vous m'aider à élaborer ce premier script ?
Dans Shadowrun, le joueur a 400 points de génération à dépenser pour créer son personnage. Il doit d'abord choisir une race (elfe, humain, nain, ork ou troll), ensuite, il doit dépenser au maximum 200 points dans les attributs puis le reste entre les compétences et l'équipement.
Il s'agit donc dans mon exemple de modifier le nombre de points de génération suivant le choix de la race du personnage. J'ai définit le nombre de points de génération dans le fichier javascript ("var gen = 400;"), les données concernant les races (nom, points de génération et modificateurs d'attributs) sont dans une base MySQL. Il faut donc récupérer les données dans un formulaire (pas de problèmes) et ensuite modifier les points de génération si le joueur clique sur une des cases race. Exemple, si le joueur clique sur "Elfe", le nombre de points de génération baisse de 30.
Voici la page PHP
- Code: Tout sélectionner
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Shadowrun</title>
<meta name="Author" content="Rico the Hobbit">
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-language" content="fr"/>
<link rel="stylesheet" href="/rico.css" type="text/css" />
</head>
<body>
<?php
include ("../haut.php");
include ("../../../../commun/connexion.php");
?>
<script type="text/javascript" src="javas.js">
</script>
<h1>
Création de personnage
</h1>
<p>
<form name="form1" method="POST" action="creation.php">
</p>
<p>
<label>
Nom du personnage
</label>
<input type="text" name="nom" />
</p>
<p>
<label>
Race
</label><br/>
<?PHP
$req = mysql_query ("SELECT * FROM shadow_race");
$compteur = 0;
while ($compteur < mysql_numrows ($req))
{
$race = mysql_result ($req, $compteur, "nom_race");
$gen = mysql_result ($req, $compteur, "gen_race");
echo "<input type=\"radio\" name=\"race\" value=\"$gen\" id=\"$race\" />$race";
$compteur++;
}
?>
</p>
<p>
<input type="submit" name="valider" />
</form>
</p>
<p>
<?php
$nom = $_POST['nom'];
echo "le nom du personnage est : $nom";
?>
</p>
</body>
</html>
Ce qui donne en HTML :
- Code: Tout sélectionner
<body>
<script type="text/javascript" src="javas.js">
</script>
<h1>
Création de personnage
</h1>
<p>
<form name="form1" method="POST" action="creation.php">
</p>
<p>
<label>
Nom du personnage
</label>
<input type="text" name="nom" />
</p>
<p>
<label>
Race
</label><br/>
<input type="radio" name="race" value="30" id="Elfe"/>Elfe
<input type="radio" name="race" value="0" id="Humain"/>Humain
<input type="radio" name="race" value="20" id="Nain"/>Nain
<input type="radio" name="race" value="25" id="Ork" />Ork
<input type="radio" name="race" value="40" id="Troll/>Troll
</p>
<p>
<input type="submit" name="valider" />
</form>
</p>
<p>
</p>
</body>
</html>
J'ai tenté de mettre en place un script mais ça ne marche pas :
- Code: Tout sélectionner
/*Définition de la variable points de génération */
var gen = 400;
/* requête PHP pour obtenir le nom des races
document.form.radio.race chemin vers le formulaire race*/
fonction testrace(forms1)
{
var elfes = document.getElementById('Elfe').checked;
if (elfes == true)
{
var gen = gen-30;
}
}
/* pour écrire du texte avec javascript */
document.write ('<p>Vous avez '+gen+' points de génération</p>');