2011-12-23 5 views
1

私はjqueryアコーディオンタブを持っています。それらのタブの中に、私はクリック時にそのタブ内に表示された特定の値で自動入力される隠れたフォームを持っています。アコーディオンタブ内に正しく表示されますが、フォーム内のオートフィル値と同じ変数を渡すと、単語が1つ以上ある場合は最初の単語だけが表示されます。私がテキストボックスの値属性として入れた変数名はまったく同じなので、なぜこのようなことが起こるのか分かりません。アコーディオンタブ内の完全な文字列値を受け取ります

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 /> 

(このすべてが「エコー内にある」PHPで)

答えて

0

あなたvalue -attributeの内容を引用符で囲む配置する必要があり、そうでなければ "他の単語 "はHTML属性として解釈されます。それでは、ブラウザにレンダリングされることは次のようになります。だから、

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

<input value=hello world> 

ブラウザは2つの属性を持っている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

関連する問題