2010-12-03 17 views
1

このjquery関数をPHPでエコーしようとしています。基本的に、フォームのフィールドが入力されていないことをスクリプトが検出した場合は、これをエコーし​​て入力テキストボックスを赤にします。phpでjqueryアニメーション関数をエコーする

エコーされていないときは正常に動作します。

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

+4

なぜ動作しないのか聞かないでください。それが出力するものを見て、それがなぜ動作するコードと異なるのか尋ねます。 PHPを実行して生成された出力を見ると、それがうまくいかない理由はかなり明白になります。 – Quentin

+0

エコーが実行されていない可能性があります。これが適切なタグ(<?php)などのPHPファイルにあることを確認してください。@David Dorwardと同様に、あなた自身でそれをデバッグする必要があります。 –

+0

@Stefan - そのエコーを実行した出力には、大胆なJS構文エラーがあります。 – Quentin

答えて

2

文字列が一重引用符で囲まれている場合、引用符をエスケープする必要はありません。 PHPは文字列を解析しません。文字通り出力されます。

+0

OHそうです。エスケープを使ったのはこれが初めてです。 –

1

あなたは文字列エスケープでそれを過剰にやっている、そこ\"使用しないでください。簡単にするために、エコーされた文字列を一重引用符で囲み、二重引用符を使用してください。ような何か:あなたはecho INGのようなものができたら、あなたが引用符をエスケープする必要がある場合

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

は、いくつかのケースは確かにありますが、時間のほとんどは、あなたは、単に引用符の異なる種類を使用することにより、それを離れて得ることができます。あなたはそれを変更する必要がある場合、あなたの人生がずっと容易になります

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

とは対照的に、

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

:人々はまだのような何かをする理由例えば、私はそれを得ることは決してないだろう。

希望すると便利です。

+0

したがって、一重引用符と二重引用符は入れ替え可能ですか? –

+0

必ずしもそうではありません。例proevilの例を取る。文字列の最後に '\ n'を追加する場合は、一重引用符で囲んで文字列を出力します。二重引用符を使用して意図したとおりに出力します(改行文字)。 –

-1

私はそれをテストが、それを試してみてくださいdidntの:$ NL =「\ n」は(私はエコーでsinglequotesを使用することを好むだけ改行のためなので、PHPは解析する必要はありませんでしたが

$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; 

コンテンツ - ちょうどエコーアウト)。

+1

私はそのようなコードを維持しなければならない愚か者を同情する... –

0

さらに、hex-color-valueは、animate()に使用できる数値ではありません。 これにより、二重引用符からバックスラッシュを削除することでエラーが修正されますが、アニメーションには何の効果もありません。

関連する問題