2011-12-23 3 views
1

jquery 아코디언 탭이 있습니다. 그 탭 내에서, 나는 클릭 할 때 그 탭에 표시된 특정 값으로 자동 채워진 숨겨진 양식을가집니다. 아코디언 탭 내에서 올바르게 표시되지만 양식 내에서 자동 채우기 값과 동일한 변수를 전달할 때 단어가 두 개 이상이면 첫 단어 만 표시됩니다. 텍스트 상자의 값 특성으로 넣은 변수 이름이 정확히 동일하므로 왜 이런 일이 발생하는지 알 수 없습니다.아코디언 탭 내 전체 문자열 값 전달

echo "<tr><p><td>".$allCourses[$i][0]."</td> - <td>".$allCourses[$i][1]."</td> 

여기에 올바르게 표시됩니다. 그러나, 여기, 첫 번째 단어가 나타납니다

<form action='editCourse.php' method='post'> 
<p id='edit-course-d' class='edit-accordion-tab'><img src='images/edit.png' title='Edit Course'/></p> 
<p id='edit-course-f' style='display: none'> 
Course ID: <input type='text' name='edit-course-id' value =".$allCourses[$i][0]."><br /> 
Course Name: <input type='text' name='edit-course-name' value=".$allCourses[$i][1]."><br /> 

"그렇지 않으면, 당신은 당신의 value -attribute의 콘텐츠에 따옴표를 넣어야 할

답변

0

(PHP에서이 모든 에코"에 있습니다) " 다른 단어 "는 HTML 속성으로 해석됩니다. 그래서

  1. value="hello"
  2. world=""

:

<input value=hello world> 

브라우저는 속성이있는 input 요소로 해석합니다 : 그래서 브라우저에 렌더링하는 것 같습니다 큰 따옴표 ' 또는 큰 따옴표를 넣어야합니다.은 속성 값을 중심으로합니다. 그와 마찬가지로 :

echo " 
    <form action='editCourse.php' method='post'> 
    <p id='edit-course-d' class='edit-accordion-tab'><img src='images/edit.png' title='Edit Course'/></p> 
    <p id='edit-course-f' style='display: none'> 
    Course ID: <input type='text' name='edit-course-id' value='".htmlspecialchars($allCourses[$i][0])."'><br /> 
    Course Name: <input type='text' name='edit-course-name' value='".htmlspecialchars($allCourses[$i][1])."'><br />"; 

나는 값 내부에 나타날 수있는 따옴표 (이 안전의 또 다른 레이어를 추가) 탈출 htmlspecialchars를 사용합니다.

+0

정말 고마워요 !! :) – codingNewbie