0

タイトルを許してください、これは私の問題を表現するために私が考えることができる最良の方法です.

基本的に、いくつかの php コード内に html フォームがありますが、フォーム内に javascript 関数 (パラメーターを指定して) を含める必要があります。しかし、PHPコードをエスケープする一重引用符と二重引用符に問題があります。下記参照:

echo'<form id="create_booking_form" onsubmit="return false;">
                    <div>Student Name: </div>
                    <input id="students_name" type="text" onfocus="emptyElement('status')" onkeyup="restrict('students_name')" maxlength="30">
                    <div>Parents Name: </div>
                    <input id="parents_name" type="text" onfocus="emptyElement('status')" onkeyup="restrict('parents_name')" maxlength="30">
                    <div>Parents Email Address: </div>
                    <input id="parents_email" type="text" onfocus="emptyElement('status')" onkeyup="restrict('parents_email')" maxlength="100">
                    <div>Booking Time: </div>
                    <input id="booking_time" type="text" onfocus="emptyElement('status')" onkeyup="restrict('booking_time')" maxlength="8">
                    <div>Comments / Questions: (max 255 characters)</div>
                    <input id="comments" type="text" onfocus="emptyElement('status')" onkeyup="restrict('comments')" maxlength="255">
                    <div>Password: </div>
                    <input id="password" type="password" maxlength="16">
                    <br /><br />
                    <button id="createbookingbtn" onclick="createbooking()">Submit your booking</button>
                    <span id="status"></span>
                </form>
            </div>
        </div>';?>

私の問題は、例えば: onkeyup="restrict('students_name')"

一重引用符を使用して「student_name」を指定すると、php コードから echo コマンドがエスケープされます。二重引用符を使用すると、restrict() 関数をエスケープします...

私に何ができる?

とても有難い

ここで私を助けることができる人はいますか?

4

4 に答える 4

5

文字列が 's で作成されている場合は、エスケープすることで文字を出力'できます: 。'\'"\"

しかし、あなたの状況では、私もそうしません。PHP タグを終了して、もう一度開始します。

?>
<form id="create_booking_form" onsubmit="return false;">
            <div>Student Name: </div>
            <input id="students_name" type="text" onfocus="emptyElement('status')" onkeyup="restrict('students_name')" maxlength="30">
            <div>Parents Name: </div>
            <input id="parents_name" type="text" onfocus="emptyElement('status')" onkeyup="restrict('parents_name')" maxlength="30">
            <div>Parents Email Address: </div>
            <input id="parents_email" type="text" onfocus="emptyElement('status')" onkeyup="restrict('parents_email')" maxlength="100">
            <div>Booking Time: </div>
            <input id="booking_time" type="text" onfocus="emptyElement('status')" onkeyup="restrict('booking_time')" maxlength="8">
            <div>Comments / Questions: (max 255 characters)</div>
            <input id="comments" type="text" onfocus="emptyElement('status')" onkeyup="restrict('comments')" maxlength="255">
            <div>Password: </div>
            <input id="password" type="password" maxlength="16">
            <br /><br />
            <button id="createbookingbtn" onclick="createbooking()">Submit your booking</button>
            <span id="status"></span>
        </form>
    </div>
</div>
<?php

しかし、HTML コンテンツを変数に入れたい場合はどうすればよいでしょうか?

出力バッファを使用するだけです。

ob_start();
?>
    <p>Some HTML</p>
<?php
$html = ob_get_clean();
于 2013-06-05T19:39:39.633 に答える
4

JavaScript を外部ファイルに配置し、代わりにそのファイルへのリンクを php に配置します。

于 2013-06-05T19:36:58.620 に答える
2

エスケープするには、引用符の前に \ を置きます。

echo'<form id="create_booking_form" onsubmit="return false;">
                    <div>Student Name: </div>
                    <input id="students_name" type="text" onfocus="emptyElement(\'status\')" onkeyup="restrict(\'students_name\')" maxlength="30">

于 2013-06-05T19:39:42.230 に答える
0

引用符の前に単一のバックスラッシュを追加することで、引用符をエスケープできます..

于 2013-06-05T19:38:33.437 に答える