2016-08-25 20 views
2

次のコードがありますが、echo $jsonData[$i]行にエラーがあります。私はあなたがPHPの中でPHPを実行するはずではないことを知っています。これを達成する正しい方法は何ですか?エコー内のPHP PHP

あなたは、文字列の範囲内で、すでにしているときではなく、エコーの連結演算子 .を使用
<?php 
if(!is_user_logged_in()){ 
    echo 'Im online. Login to Chat'; 
} else { 
echo '<input type=\"submit\" onclick=\"javascript:jqcc.cometchat.chatWith(' <?php echo $jsonData[$i]; ?> ');\" value=\"Chat Now\" class=\"success button small\" 
\" >'; 
} 
?> 
+0

http://php.net/manual/en/function.echo.php –

+3

これは悪い質問ではありません。票があなたに届かないようにしてください。 –

+0

これは基本的な言語機能であるため、これは悪い質問です。場合によっては、質問をする際にサイトポリシーに従わないため、より興味深い質問が下落することがあります。これらのポリシーの1つは研究の後に尋ねることです。例えば、この質問は、全く研究を示さないということです。これは、PHP学習者が最初に学習するものの1つです。 –

答えて

6

:あなたが使用している場合を除き

echo '<input type="submit" onclick="javascript:jqcc.cometchat.chatWith(' . $jsonData[$i] . ');" value="Chat Now" class="success button small">'; 

また、あなたは、バックスラッシュを必要としません文字列の開始と終了を同じ引用符で囲みます。あなたのケースでは、一重引用符で開閉するので、二重引用符はエスケープする必要はありません。

0

あなたは(すなわち、開口部<?phpタグに達する)PHPモードにいる一度あなたがPHPモードを(すなわち閉じ?>タグに達する)終了するまで、すべてがコードとして読み込まれます。したがって、既に開かれているときにこれらのタグを再度開く必要はありません。詳細については、basic syntax section of the manualを参照してください。

PHPの優れた機能の1つは、HTMLにコードを埋め込む必要がなく、HTMLにコードを埋め込むことができる点です。それは...あなたはこのようにそれを書くとき、たとえば、あなたのコードを読むために、実際にそれが必要だところ、我々は唯一の$jsonData[$i]の値を印刷するPHPを使用し、他のすべてが単なる/テキストです

<input type="submit" onclick="javascript:jqcc.cometchat.chatWith(<?= $jsonData[$i]; ?>);" value="Chat Now" class="success button small"> 

お知らせはるかに簡単ですかHTMLが印刷されます。

また、の短縮形を使用していますが、これはちょうど<?=です。


は、HTML内のコードをの埋込みのこのアイデアは、とても便利である理由の一つは、それはあなたがデータから、簡単かつ透過的に別々のコードを可能にするということである、この小さなに展開します。

<?php 
$loggedIn = is_user_logged_in(); 

if ($loggedIn) { 
?> 
<input type="submit" onclick="javascript:jqcc.cometchat.chatWith(<?= $jsonData[$i]; ?>);" value="Chat Now" class="success button small"> 
<?php 
} else { 
?> 
<h1>ohnoes, you're not logged in :(</h1> 
<?php 
}