Problème sur safari pour un onchange sur un type text

ghislaint22 Messages postés 3 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008 - 24 oct. 2008 à 18:54
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 27 oct. 2008 à 15:34
Bonsoir à tous.  Voila mon problème.   J'affiche une galerie de vignettes de photos, et sous chaque vignette j'ai un zone de texte en saisie pour que l'utilisateur puisse taper un sous titre.   Et si un sous titre est tapé, j'apelle un formulaire qui enregistre le sous titre pour cette photo.
Pour vérifier si un sous titre est saisi, j''utilise la fonction onchange.   Marche très bien sous IE,  mais pas du tout sous Safari si Firefox  (la zone n'est pas accessible en saisie.
Voici mon code:

<?php
**  D'abord la récupération des infos de la base:   le sous titre est le champ stitre

$query="SELECT DISTINCT id,nomphoto,clephoto,ext,stitre FROM photos WHERE clecphot='".$clephot."'  ORDER BY numero";
if($result=mysql_query($query)){}  else die(mysql_error());
$k=0;

**   Ensuite j'affiche mes vignettes

while($row=mysql_fetch_row($result))
{
?>
 <li class="slide" ordreID="<?php echo $row[0];?>">
  

                                ----

                ,
  .jpg"  />
  
  **  Et voilà mon problème :  La fonction onchange est totalement inactive sous Safari et Firefox.  Aucun problème sous IE.   modif_titre se contente de mettre le sous titre à jour en base pour cette photo
                
  ,
                &nbsp;,
                ----

                &nbsp;,
" value="<?php echo $row[4]?>" size=10 value="" onchange="javascript:modif_titre('<?php echo $row[0];?>',this.value)">,
               

               

 </li>
<?php
}

?>

Il doit y avoir une astuce sur l'écriture de cette fonction onchange,  mais impossible de trouver.  Merci de m'éclairer si vous avez des idées.
Ghislain
A voir également:

6 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
25 oct. 2008 à 07:42
Bonjour,
pas vu de fonction modif_titre dans ce que tu
présentes.
Mettre la page HTML générée et non le PHP pour que l'on puisse
éventeullement tester sans tout construire, pas 127548 lignes comme dirait TheBultez

<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, input type=\"text\"
name="titre<?ph...</td>
</td></tr></tbody></table>attention
à la façon d'appeller l'INPUT, il y a qu'un attribut name mais pas d'attribut id, IE sait faire pas les autres...

<table bgcolor ="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, la zone n'est pas accessible en
saisie</td>
</td></tr></tbody></table>peut être
un probléme de CSS simplement

...et surement plus si affinité...

;O)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 oct. 2008 à 10:46
bonjour

d'abord petoleTeam++ bien sûr

ensuite         name="titre<?php echo $row[0];?>
"      
                   tu vas avoir des soucis ! des
dans un name....

et malgré tout :

"
        value="<?php echo $row[4]?>"
        size=10
        value=""
        onchange="alert(this.value);" />

ça baigne aussi avec safari,
ça vient ou du php qui générerait des choses bizarres ou de la fonction modif_titre

Cordialement

          Bul [mon Site] [M'écrire]         
0
ghislaint22 Messages postés 3 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008
27 oct. 2008 à 14:21
Merci de vos conseils.
Après avoir testé vos suggestions,  il semble en effet que l'input text ne soit pas en cause.  
Si je passe le </table>  devant cet input (au niveau de mon dernier commentaire donc),  la zone redevient accessible en mise à jour ... Par contre on perd toute la mise en forme.
Ghislain
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 oct. 2008 à 14:29
donc... une erreur html ( peut-être due à ce qui  est fait par le php )

un éditeur à coloration syntaxique sur la page
       résultante te permettra peut-être de voir
ou alors, faire contrôler le html résultant, en ligne,
             ou avec l'extension "HTML Validator" de FF
             ( je ne sais pas s'il existe l'équivalent avec IE ? )

          Bul [mon Site] [M'écrire]         
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ghislaint22 Messages postés 3 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008
27 oct. 2008 à 15:17
J'ai retesté avec une colloration syntaxique   RAS.
Sur un autre forum,  on m'a dit que c'était une mauvaise priorisation de fonctions et une astuce pour la contourner coté utilisateur:  Faire clic droit sur le champ text en saisie.  Effectivement passe aussitôt en écriture...  mais pas très propre.   
Signifie quand même que le code marche,  mais que sous Safari on n'a pas spontanément le curseur sur l'input text  (sauf s'il est séparé de l'autre fonction)..
Aucune idée de ce qu'est une priorisation de fonctions.  Je pensais qu'on pouvait en mettre autant qu'on voulait.
Ghislain
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 oct. 2008 à 15:34
>>Aucune idée de ce qu'est une priorisation de fonctions.
je n'en sais rien non plus !!
>> Je pensais qu'on pouvait en mettre autant qu'on voulait.
bien sûr que oui.

non, non, tu as une erreur HTML, tout simplement !
      ( peut-être, encore une fois, causée par le php )
      puisqu'avec une balise </table> tu dis que ça baigne !
ça ne doit pas être autre chose ! puisque, là aussi,
le petit exemple que j'ai mis ( tiré du tien ) fonctionne
parfaitement.

mais, nous on n'a pas assez de billes pour trouver.
une adresse pour voir la page html résultante ?

          Bul [mon Site] [M'écrire]         
0
Rejoignez-nous