1

文字列は次のようになります。

<form id="unban" method="post" action="unban.php?uid=<? echo $uID; ?>">
                <input type="hidden" name="name" value="" /> 
                <a onclick="document.getElementById('unban').submit();">UnBan</a>
                </form>

そして、これを他の変数の負荷でエコーアウトする必要があります(ifステートメントがあるため、phpタグの外に置くことはできません)が、変数に保存してエコーで使用する方法が見つかりません。私のエコーは次のようになります。

echo "<tr><td>" . $row['username'] . "</td><td>" . $banBool . "</td><td>". $status ."</td><td>" . $row['full_name'] . "</td></tr>";

$statusif ステートメントに応じて、whereは上記の形式になります。

それを文字列として保持し、それでもこれを行う方法はありますか?

また、javascript 構文を明確にするために「ターゲット」が必要であり、「ターゲット」は許可されません

4

5 に答える 5

2

PHPのif-block内に通常のHTMLを記述できます。PHPタグを閉じてから再度開くだけです。

<?php
if($something == $somethingelse) {
    ?>
    <form id="unban" method="post" action="unban.php?uid=<?php echo $uID; ?>">
    ...
    </form>
    <?php
}

本当に文字列で保持する必要がある場合は、各引用符の前にバックスラッシュを追加して、文字列を保持している引用符のタイプをエスケープしてください。

$status = '<form id="unban" method="post" action="unban.php?uid='.$uID.'">
            <input type="hidden" name="name" value="" /> 
            <a onclick="document.getElementById(\'unban\').submit();">UnBan</a>
            </form>

(また、変数内でエコーを実行できないことに注意してください。文字列を変数と連結するだけです)

于 2012-04-09T17:42:17.010 に答える
1

より複雑なものを出力したり、両方のタイプの引用符が必要な場合は常に、HEREDOC文字列を使用する必要があります。

echo <<<HTML

    <tr><td> $row[username] </td><td>
    $banBool </td><td> $status </td><td>  $row[full_name] 
    </td></tr>

HTML;

ここで配列キーの引用を避ける方法に注意してください (二重引用符で囲まれた文字列のように動作します)。

Javascript を使用するための文字列を準備する必要がある場合は、さらにjson_encode()賢明かもしれません。

于 2012-04-09T17:45:35.593 に答える
0

文字列内の変数でエコーするのが好きな最もクリーンな方法は次のようなものです。

echo "This is a string with a {$variables["variable"]} in it. If I have to use another double-quote within this string I'll escape it with a \"backslash\".";

私は通常、一重引用符と二重引用符を混在させることを完全に避けています(JavaScript関数のように、混乱を減らすために必要な場合を除きます。

HTMLは次のように書くことができます:

echo "<form id=\"unban\" method=\"post\" action=\"unban.php?uid={$uID}\">
    <input type=\"hidden\" name=\"name\" value=\"\" /> 
    <a onclick=\"document.getElementById('unban').submit();\">UnBan</a>
</form>\n";

エコーされた結果の文字列は、自然な文字を持ち、適切な空白のフォーマットを持ちます。

于 2012-04-09T17:42:31.710 に答える
0

バックスラッシュを使用して引用符をエスケープします: \'

于 2012-04-09T17:43:47.140 に答える
0

引用符をエスケープしてみませんか?

echo "\"", '\''; // "'

それが不可能な場合は、PHP のheredoc および nowdoc構文を確認してください。3 つ目の方法は、IF ステートメントの途中で PHP ブロックを閉じ、HTML を直接出力することです。

ああ、出力バッファリングを使用することもできます:-)

于 2012-04-09T17:57:06.633 に答える