2013-06-05 3 views
0

제목을 용서하십시오. 내 문제를 말로 생각할 수있는 가장 좋은 방법입니다.PHP 내부에서 반향하는 HTML 형식의 자바 스크립트 함수 사용

기본적으로, 일부 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에 = "제한 ('students_name')"

내가 그것을 에코 명령은 PHP 코드를 형성 탈출 'STUDENT_NAME'를 지정하기 위해 작은 따옴표를 사용하는 경우. 큰 따옴표를 사용하면 restrict() 함수를 이스케이프 처리합니다 ...

어떻게해야합니까?

많은

감사

여기 나를 도울 수 누구?

+0

그냥 형태와 JS를 분리해서하고 핸들러를 첨부 할 jQuery를 사용 – KyleK

답변

0

는 ..

당신의 문자열이 ' 년대에 만든 경우
4

나는 외부 파일에 자바 스크립트를 배치하고 대신 php에 해당 파일에 대한 링크를 배치합니다. 당신은 그 전에 하나의 백 슬래시를 추가하여 따옴표를 탈출 할 수

5

, 당신은 그것을 탈출하여 ' 문자를 인쇄 할 수 있습니다 \'를, 그것은 "로 만들어지는 경우 '이면, \"으로 탈출하여 인쇄 할 수 있습니다.

그러나 귀하의 상황에서는 그러나 나는하지 않을 것입니다. 난 그냥 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(); 
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"> 

관련 문제