2012-09-24 3 views
0

선택 드롭 다운이있는 HTML 양식이 있습니다. 내 MySQL DB에서 드롭 다운을 채우고 싶습니다. HTML 양식에는 datepicker 및 양식의 필드 중 하나에있는 현재 날짜를 처리 할 수있는 Java 스크립트가 이미 있습니다.HTML 폼에 PHP를 삽입하여 선택 항목 채우기

수동으로 선택 양식을 코딩 할 수 있지만 MySQL에서 제공하기를 원합니다. php 나는 name.php라는 파일을 넣어서 제대로 작동하는지 확인합니다. php에 echo 문을 추가하여 양식과 선택 항목을 작성한 다음 선택 항목을 채우고 닫습니다. 이것은 독립 PHP로 잘 작동했습니다.

선택 정의에서 양식에 PHP를 추가하면 선택 항목이 전혀 채워지지 않고 공백으로 남겨 둡니다. 선택 옵션의 형식으로 정보를 출력하기 위해 일부 에코 구문을 추가하면 첫 번째 에코가 나타나지 않고 후속 에코가 나타나지만 변수는 변수 이름으로 표시됩니다.

<form id="form1" name="form1" method="post" action="/db_log.php"> 
Field:<select name="id"> 

<?php 

    require_once dirname(__FILE__) . '/db_connect.php'; 
$db = new DB_CONNECT(); 

$query="SELECT id, name FROM file order by name"; 
$result=mysql_query($query); 

while ($row = mysql_fetch_array($result)) { 
    $id = $row['id']; 
    $name =$row['name']; 
    echo "<option value=\"$id\"> $name </option>"; 
    } 
?> 

</select><br /> 
</form> 

위의 예는 빈 선택 드롭 다운입니다. 그러나 이것은 PHP 파일로 잘 작동합니다.

<?php 
echo "<form id=\"form1\" name=\"form1\" method=\"post\" action=\"/db_log.php\">"; 
    echo "Select:<select name=\"id\">"; 
    require_once dirname(__FILE__) . '/db_connect.php'; 
$db = new DB_CONNECT(); 

$result=mysql_query("SELECT id, name FROM file order by name"); 

while ($row = mysql_fetch_array($result)) { 
    $id = $row['id']; 
    $name =$row['name']; 
    echo "<option value=\"$id\"> $name </option>"; 
    } 

    echo "</select><br />"; 
    echo "</form>"; 
?> 

다른 에코보다 먼저 테스트 에코처럼 HTML 형식에 에코를 추가하면 무시됩니다.

<form id="form1" name="form1" method="post" action="/db_log.php"> 
Field:<select name="id"> 

<?php 
    echo "<option value=\"1\"> Test-name </option>"; 

    require_once dirname(__FILE__) . '/db_connect.php'; 
$db = new DB_CONNECT(); 

$query="SELECT id, name FROM file order by name"; 
$result=mysql_query($query); 

while ($row = mysql_fetch_array($result)) { 
    $id = $row['id']; 
    $name =$row['name']; 
    echo "<option value=\"$id\"> $name </option>"; 
    } 
?> 

</select><br /> 
</form> 

이에서 나타 유일한 것은 $ 선택

+0

이것은 중복입니다 ... http://stackoverflow.com/questions/12558918/populating-a-html-form-selection-with-a-query-of-a-mysql – Erik

+0

추가하는 트릭이 있습니까? PHP를 HTML로 변환. 방금 전 형태와 선택을 한 PHP와 제출 버튼을 만들었습니다. 그것은 PHP 파일로 작동합니다. 그런 다음 빈 html 파일을 만들고 html 파일의 본문에 PHP를 붙여 넣었습니다. 결과적으로 다음과 같은 결과가 나타납니다. – Dag

+0

";"Airplane : "; echo;"; echo ""; ?> – Dag

답변

0

이 질문과 이전 질문 및 의견을 바탕으로 나는 .html 파일에서 PHP를 실행하려고합니다. 작동하려면 코드 (html 포함)를 .php 파일에 저장해야합니다.

+0

그래서 html에 php 코드를 삽입 할 때, 파일은 더 이상 html 타입이 될 수 없으며, php 타입이어야합니다. 그냥 파일을 저장하면 다시 작동합니다 .. – Dag

+0

'.php를 모두 호출하는 버릇이 생깁니다. '. <$ php'가 없으면 PHP는 그대로 전달하거나, 웹 서버 구성을 변경하여'.html'을 위해 PHP를 사용할 수 있습니다. – Barmar

0

이름을 할 수있는 옵션이 내 MySQL 데이터베이스 피드 콤보 박스입니다.

I는 다음과 같이 진행됩니다

<tr> 
        <td>Emergency service</td> 
        <td><?php 
          $nombreEmergencia; 
          $idEmergencia; 
          $sql4 = "SELECT `idEmergencias`, `nombre` FROM `emergencias` WHERE 1"; 
          $iterador = $conn->consulta($sql4); 

          echo '<select name="idEmergencia" id="idEmergencia" style="width:228px"> 
          <option value="-1" selected>(please select:)</option>'; 
          while($iterador->hayElemento()){ 
            $nombreEmergencia = $iterador->getElemento("nombre"); 
            $idEmergencia = $iterador->getElemento("idEmergencias"); 
            echo '<option value="'.$idEmergencia.'">'.utf8_encode($nombreEmergencia).'</option>'; 
          } 
          echo '</select>'; ?></td> 
        </tr> 

당신이 더 많은 요소에 대한 데이터베이스를 확인하고 '에게 그들을 제공하는 기능을 가진 "반복자"변수를 사용해야 볼 수 있습니다.

은 보조 기능은 다음과 같습니다 그건 :

<?php 
class Iterador{ 
    private $ultimoDato; 
    private $id; 

    public function __construct($id){ 
     $this->id = $id; 
    } 

    public function hayElemento(){ 
     $dato = mysql_fetch_array($this->id); 
     $this->ultimoDato = $dato; 
     return !empty($dato); 
    } 

    public function getElemento($columnas){ 
     return $this->ultimoDato[$columnas]; 
    } 

    public function inicializar(){ 
     $dato = mysql_fetch_array($this->id); 
     $this->ultimoDato = $dato; 
    } 

    public function hay(){ 
     return !empty($this->ultimoDato); 
    } 

    public function siguiente(){ 
     $dato=mysql_fetch_array($this->id); 
     $this->ultimoDato=$dato; 
    } 


} 
?> 

희망이 도움이!