2010-12-03 42 views
1

J'essaye de faire écho à cette fonction jquery, avec php. Fondamentalement, si le script détecte qu'un champ d'un formulaire n'est pas renseigné, il fera écho à ceci et rendra la zone de texte d'entrée rouge.en écho à une fonction d'animation jquery avec php

Fonctionne correctement si elle n'est pas écoutée.

echo(' 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $(\'input\').animate({backgroundColor:\"#F00\"},200); 
    }); 
</script> 
'); 

des idées?

+4

Ne demandez pas pourquoi cela ne fonctionne pas. Regardez ce qu'il produit et demandez pourquoi cela est différent du code qui fonctionne. Si vous exécutez le PHP et regardez la sortie générée, la raison pour laquelle cela ne fonctionne pas devient assez évidente. – Quentin

+0

Les chances sont que l'écho ne soit pas exécuté. Assurez-vous que cela se trouve dans un fichier PHP dans les balises appropriées (

+0

@Stefan - la sortie de l'exécution de cet écho a de grandes erreurs de syntaxe JS. – Quentin

Répondre

2

Je ne pense pas que vous devez échapper vos guillemets lorsque la chaîne est entre guillemets simples. PHP ne va pas analyser la chaîne, elle sera sortie littéralement.

+0

OH c'est tout. C'est la première fois que j'ai utilisé des échappements. –

0

Vous ne devriez pas utiliser il \", juste "

1

Vous êtes trop faire sur l'évasion de chaîne. Pour simplifier, utilisez simplement des guillemets simples autour de la chaîne renvoyée et utilisez des guillemets doubles. Quelque chose comme:

echo(' 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input").animate({backgroundColor: "#F00"}, 200); 
    }); 
</script> 
'); 

Lorsque vous êtes echo ing choses, il y a en effet des cas où vous avez besoin pour échapper aux citations, mais la plupart du temps, vous pouvez tout simplement sortir avec elle en utilisant différents types de citations. Par exemple, je ne comprends pourquoi les gens font encore quelque chose comme:

echo "<input type=\"text\" name=\"username\">"; 

par opposition à

echo '<input type="text" name="username">'; 

ce qui rend votre vie beaucoup plus facile lorsque vous devez modifier.

Espérons que cela aide!

+0

Alors les guillemets simples et doubles sont interchangeables? –

+0

Pas nécessairement. Prenons l'exemple de l'exemple de proEvil. Si vous deviez ajouter un '' \ n'' 'la fin de votre chaîne, en la plaçant entre guillemets, elle serait sortie littéralement, plutôt que d'utiliser des guillemets qui la sortiraient comme prévu (c'est-à-dire un nouveau caractère de ligne). –

-1

i na pas tester, mais essayer:

$nl = "\n"; 
echo '<script type="text/javascript">'.$nl; 
echo ' $(document).ready(function() {'.$nl; 
echo '  $("input").animate({backgroundColor:"#F00"},200);'.$nl; 
echo ' });'.$nl; 
echo '</script>'.$nl; 

la nl $ = "\ n" est que pour linebreak (je préfère utiliser singlequotes dans echos, donc php ne pas avoir à analyser la contenu - juste écho).

+1

Je plains le fou qui doit maintenir le code comme ça ... –

0

En outre: une valeur hexadécimale n'est pas une valeur numérique que vous pouvez utiliser pour animate(). Par ce, l'erreur est résolue en supprimant les barres obliques inverses des guillemets doubles, mais votre animation n'affichera aucun effet.