0
<?php

echo '

<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
  <input id="photoCover" class="input-large" type="text">
    <a class="btn" onclick="$('input[id=image_file]').click();">Browse</a>
</div>

<script type="text/javascript">
   $('input[id=image_file]').change(function() {
   $('#photoCover').val($(this).val());
   });
</script>

'; 
?>

ご覧のとおり、これは競合を示します

<a class="btn" onclick="$('input[id=image_file]').click();">Browse</a>

そして

<script type="text/javascript">
   $('input[id=image_file]').change(function() {
   $('#photoCover').val($(this).val());
   });
</script>

スクリプトの開始 ' エコーの終了 ' が原因で、これをどのように修正しますか? くだらない質問でしたらすみません

4

7 に答える 7

1

ヒアドキュメント構文を探しているようです。ヒアドキュメント構文は、'またはの3番目のタイプのように機能します"

echo <<<HEREDOC

<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
  <input id="photoCover" class="input-large" type="text">
    <a class="btn" onclick="$('input[id=image_file]').click();">Browse</a>
</div>

<script type="text/javascript">
   $('input[id=image_file]').change(function() {
   $('#photoCover').val($(this).val());
   });
</script>

HEREDOC;

ヒアドキュメントステートメントをで開始し、<<<UNIQUEIDENTIFIER空白なし、UNIQUEIDENTIFER場合によっては;、改行で終了します。それを閉じるための構文は非常に特殊なので、注意してください。

参照:http ://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

注:一意の識別子としてヒアドキュメントを使用する必要はありませんが、構文に不慣れな人がグーグルで何を見ているのかを理解しやすくするために使用する傾向があります。

于 2013-03-15T18:04:05.550 に答える
1

これを試して。これは機能します。

echo '

<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
<input id="photoCover" class="input-large" type="text">
<a class="btn" onclick="$(\'input[id=image_file]\').click();">Browse</a>
</div>

<script type="text/javascript">
$("input[id=image_file]").change(function() {
$("#photoCover").val($(this).val());
});
</script>

'; 
?>
于 2013-03-15T17:59:21.433 に答える
0

Heredocまたは、構文を使用することもできます。

<?php

$html = <<<HTML

<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
  <input id="photoCover" class="input-large" type="text">
    <a class="btn" onclick="$('input[id=image_file]').click();">Browse</a>
</div>

<script type="text/javascript">
   $('input[id=image_file]').change(function() {
   $('#photoCover').val($(this).val());
   });
</script>

HTML;

echo $html;

?>

この場合、引用符やエスケープについて心配する必要はありません。

于 2013-03-15T18:03:14.193 に答える
0

これはPHPの文字列構造では一般的なことなので、例を挙げておきます。

echo 'I want this text to show my ' in the sentence';

上記の例は、文字列が予期せず閉じられたため、構文エラーです。ただし、文字列内の一重引用符をエスケープすると、有効になり、次のように表示されます。

echo 'I want this text to show my \' in the sentence';
//output : I want this text to show my ' in the sentence

他の方法は、二重引用符と一重引用符の間を行き来することです。

echo "This will show my ' in the sentence";
//output : This will show my ' in the sentence

しかし、時にはもっと必要で、次のことをするのは醜いように見えます:

echo "I want this ' in here but I need to quote ".'"poney"'." in my sentence";
//output : I want this ' in here but I need to quote "poney" in my sentence

だから逃げることを忘れないでください。HTMLのもう1つの方法は、PHPを終了して表示することです(オプションではない場合もあります)。

<?php if(true) : ?>
<p>Show some html <?php echo $var;?> here</p>
<?php endif; ?>

または単に

<?php
    //some code here
?>
<html>
</html>

これは多くの方法で行うことができ、引用符を調整する必要がなくなりますecho

于 2013-03-15T18:03:20.977 に答える
0

PHPでこれをエコーし​​ている理由はわかりませんが、次のようにすることができます。

<?php
    // PHP Code
    // In a PHP file, anything outside of PHP tags just gets echoed
?>

<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
  <input id="photoCover" class="input-large" type="text">
    <a class="btn" onclick="$('input[id=image_file]').click();">Browse</a>
</div>

<script type="text/javascript">
   $('input[id=image_file]').change(function() {
   $('#photoCover').val($(this).val());
   });
</script>

<?php
    // PHP Code
?>
于 2013-03-15T18:01:12.507 に答える
0

簡単な答えは、次のようにバックスラッシュエスケープを使用することです。

<?php
echo '
<input type="file" name="image_path" style="visibility:hidden;" id="image_file">
<div class="input-append">
<input id="photoCover" class="input-large" type="text">
<a class="btn" onclick="$(\'input[id=image_file]\').click();">Browse</a>
</div>
<script type="text/javascript">
$(\'input[id=image_file]\').change(function() {
   $(\'#photoCover\').val($(this).val());
});
</script>
'; 
?>

お役に立てれば。

于 2013-03-15T17:56:35.050 に答える
0

'次の"ようにエスケープできます。

$html = ' " \" \' ';

このようにして、3 つの異なる見積もりを取得します。

$html = '<script type="text/javascript">
   $(\'input[id=image_file]\').change(function() {
   $(\'#photoCover\').val($(this).val());
   });
</script>';

また、PHP 文字列内にある JavaScript コードでエスケープされた qoutation を使用する場合も注意してください。

$html = '<script type="text/html">
    var = \'This text has \\\'quoted\\\' single quotes :)\';
</script>';
于 2013-03-15T17:57:15.927 に答える