5568 sujets

Sémantique web et HTML

Bonsoir,

Je voudrais pouvoir donner le focus à un input type text grâce à bouton 'radio', et que ce soit cette valeur tapée qui soit envoyée par le POST.

Choisis un % de réduction :
75% = 768px x 576px
50% = 512px x 384px
25% = 256px x 192px
10% = 102px x 76px
Autre % = px

Mais voilà...
Quand je clique sur le radio 'autre %', le champ texte ne prend pas le focus

echo "Choisis un % de réduction : <br/>";
								echo "<form method='post' form name='myForm' action='index.php' onsubmit='displayGif()' enctype='multipart/form-data'>";
								echo "<input type='radio' name='a'  value='75'  id='75'/>75% = ".intval($image_sizes[0]*0.75)."px x ".intval($image_sizes[1]*0.75)."px<br/>";
								echo "<input type='radio' name='a'  value='50'  id='50'/>50% = ".intval($image_sizes[0]*0.50)."px x ".intval($image_sizes[1]*0.50)."px<br/>";
								echo "<input type='radio' name='a'  value='25'  id='25'/>25% = ".intval($image_sizes[0]*0.25)."px x ".intval($image_sizes[1]*0.25)."px<br/>";
								echo "<input type='radio' name='a'  value='10'  id='10'/>10% = ".intval($image_sizes[0]*0.10)."px x ".intval($image_sizes[1]*0.10)."px<br/>";
								echo "<input type='radio' name='a'  id='aut' onclick='document.getElementById('mon_texte').focus'/>Autre % = <input type='text' name='aut' id='mon_texte' value= '' style='width:30px' maxlength='2' /> px<br/>";
								echo "<input type='submit' name='reduce' value='Reduire photo'>";
								echo "</form>";

Quelqu'un voit-il le problème ?

Merci beaucoup à tous.
Salut,

tu as un problème de quotes:


<input type='radio' name='a'  id='aut' onclick='document.getElementById('mon_texte').focus'/>
Autre % = 
<input type='text' name='aut' id='mon_texte' value= '' style='width:30px' maxlength='2' /> px<br/>


Comme ça, ça devrai être mieux:

<input type="radio" name="a"  id="aut" onclick="document.getElementById('mon_texte').focus"/>
Autre % = 
<input type="text" name="aut" id="mon_texte" value="" style="width:30px" maxlength="2" /> px<br/>


C'est aussi un chouilla plus valide Smiley cligne

Edit: Avec cette manie que beaucoup de gens ont de mettre des echo dans tous les sens, vous perdez la coloration syntaxique, et vous bloquez sur des problème tout a fait contournables...


<span>Choisis un % de réduction : </span>
<br/>
<form method="post" name="myForm" action="index.php" onsubmit="displayGif()" enctype="multipart/form-data">
  <input type="radio" name="a"  value="75"  id="75"/>
  <span>75% = <?php echo intval($image_sizes[0]*0.75) . "px x " . intval($image_sizes[1]*0.75) . "px"; ?></span>
  <br/>
  <input type="radio" name="a"  value="50"  id="50" />
  <span>50% = <?php echo intval($image_sizes[0]*0.50) . "px x " . intval($image_sizes[1]*0.50) . "px";?></span>
  <br/>
  <input type="radio" name="a"  value="25"  id="25" />
  <span>25% = <?php echo intval($image_sizes[0]*0.25) . "px x " . intval($image_sizes[1]*0.25) . "px"; ?></span>
  <br/>
  <input type="radio" name="a"  value="10"  id="10"/>
  <span>10% = <?php echo intval($image_sizes[0]*0.10) . "px x " . intval($image_sizes[1]*0.10) . "px"; ?></span>
  <br/>
  <input type="radio" name="a"  id="aut" onclick="document.getElementById('mon_texte').focus" />
  <span>Autre % = </span>
  <input type="text" name="aut" id="mon_texte" value="" style="width:30px" maxlength="2" />
  <span>px</span>
  <br/>
  <input type="submit" name="reduce" value="Reduire photo">
</form>


Je passe les commentaires sur la structure HTML, le code parle de lui même...
Modifié par JJK801 (06 Jun 2012 - 23:58)
Bonjour,

Merci pour ta réponse.

Le site est en PHP. Il y a donc des "echo", ce n'est pas à proprement parler une manie, si je pouvais je m'en passerais bien Smiley smile

Peut-être parles-tu de ne pas mettre les "echo" dans le message du forum ?

En tout cas, je ne vois pas ce que ta solution change. Ou bien on ouvre les "echo" avec des simples quotes et puis on met des doubles quotes pour entourer les éléments HTML ... ou l'inverse.

Si cela a une incidence sur l'interprétation du code, j'aimerais savoir laquelle et pourquoi.

En résumé :
Les boutons radios fonctionnent bien, indépendamment du reste.
Mais :
1) en cliquant sur la zone de texte, le bouton radio correspondant ne se sélectionne pas.
2) Lorsque l'on met le curseur sur la zone de texte après avoir cliqué sur un autre bouton radio , celui-ci ne se désélectionne pas... et le radio-zone-de-texte ne se sélectionne pas non plus.

Ce que je veux faire n'est pas peut-être pas possible avec les seules propriétés des balises HTML ... faut-il du javascript ?


Merci à tous
T.
Modifié par Tropiques (07 Jun 2012 - 08:23)
Modérateur
Bonjour,

la différence entre:


echo '<div class="truc">'.$myval."<img src=\"$myval2\" alt=\"machin\" /></div>";

et

<div class="truc"><?php echo $myval ?><img src="<?php echo $myval2 ?>" alt="machin" /></div>

est évidente, le second est beaucoup plus lisible.

pour ton problème,

ceci n'est pas valide:
document.getElementById('mon_texte').focus

focus étant une méthode, et non une propriété:
document.getElementById('mon_texte').focus()

Modifié par kustolovic (07 Jun 2012 - 08:35)
En effet , le problème des quotes est négligeable, a ceci prés que ceci:



<input type='radio' name='a'  id='aut' onclick='document.getElementById('mon_texte').focus'/>


Sera interprêté par ton navigateur comme ça:


<input type="radio" mon_texte').focus'="" onclick="document.getElementById(" id="aut" name="a">


Et que ceci:


<input type="radio" name="a"  id="aut" onclick="document.getElementById('mon_texte').focus"/>


ser interprêté comme ça:


<input type="radio" onclick="document.getElementById('mon_texte').focus" id="aut" name="a">


Ca ne change rien de plus que de rendre ton script fonctionnel, mais c'est pas le but quand on développe.

Et en effet, je parlais bien du fait de mettre tout son code HTML dans des echo, le but d'un echo c'est d'afficher des variables dynamique, pas du code statique... La manière dont tu l'utilise peut s'avérer utile quand tu fait des boucle et que tu concatène du code dans une variable (encore que... ), mais dans ce cas précis, c'est plus se tirer une balle dans le pied.

Je me permet également de te dire que ton utilisation de intval, n'a pas de sens, cette fonction sert a caster ta variable en un entier, concrêtement elle effectue une troncature, là ou tu a besoin d'un arrondis:

intval(10.3) => 10
intval(10.7) => 10

round(10.3) => 10
round(10.7) => 11

floor(10.3) => 10
floor(10.7) => 10

ceil(10.3) => 11
ceil(10.7) => 11
Modifié par JJK801 (07 Jun 2012 - 09:33)
@JJK801

Je te remercie pour ta volonté de m'aider et pour ta judicieuse remarque à propos de intval().

Pour le reste je ne pige pas l'histoire de echo"" ou pas echo"". Le site étant 100% PHP avec include de toutes les pages dans la page index, dès que l'on enlève un code html de echo"" on obtient un erreur.


Je voudrais juste que le 'radio' devant la zone de texte permette d'activer cette zone et que si l'utilisateur se ravise en cliquant un autre 'radio', que cette zone de texte soit vidée et désactivée.


Cordialement
T.
Je pense que tu a dû level up tes compétences en PHP en passant a travers quelques fondamentaux Smiley smile

Le PHP sert a quoi en web? A générer des données dynamiques, effectuer des traitements, etc...

Un site 100% PHP, ça n'existe pas, enfin si mais c'est une soupe de mots incompréhensible...

Lorsque tu travail dans ta page PHP, tu utililise ces tags => <?php et ?>

Ces 2 tags signifient, "Ici il y a des traitements a effectuer en PHP".

Il n'en reste pas moins que tu peut mettre du HTML dans une page PHP:


<?php
$title = 'Bienvenue sur mon site!';
$hello = 'It works!';
?>
<html>
  <head>
    <title><?php echo $title; ?></title>
  </head>
  <body>
    <h1><?php echo $hello; ?></h1>
  </body>
</html>


Le tout, c'est de bien ouvrir et fermer les tags PHP pour définir les zones PHP et les zones HTML.

Ta présentation est séparé de ton code et c'est la base de tout travail sérieux Smiley cligne

Ce n'est pas une obligation de fonctionner comme ça, mais du gagnera probablement la moitié de ton temps.
Modifié par JJK801 (07 Jun 2012 - 11:52)