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

Signaler
Messages postés
3
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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

6 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]         
Messages postés
3
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 octobre 2008

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]         
Messages postés
3
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 octobre 2008

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>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]