2013-08-22 49 views
-1

我试图从数据库打印文本框和下拉列表。我打印文本框并根据给定的输入下拉菜单。如何使用JavaScript在循环中打印PHP下拉列表

例如:假设我给出的输入为4.为此,它将创建四个文本框和下拉菜单。

但是我在PHP中有下拉代码,所以现在我想用JavaScript打印循环中的PHP下拉菜单。我怎样才能做到这一点?

JavaScript代码:

function create(param) { 
    'use strict'; 

    var i, target = document.getElementById('screens'); 
    target.innerHTML = ''; 

    for(i = 0; i < param; i += 1) { 
     target.innerHTML +='</br>'; 
     target.innerHTML +='New Movie '+i+' '; 
     target.innerHTML += '<input type="text" name="Fname">'; 
     target.innerHTML +=' '+'Language '+' '; 
     target.innerHTML += '<input type="text" name="timings">'; 
     target.innerHTML +='</br>'; 
     target.innerHTML +='</br>'; 
    } 
} 

PHP下拉:

<?php 
    try { 
     $dbh = new PDO('mysql:dbname=theaterdb;host=localhost','tiger','tiger'); 
    } 
    catch (PDOException $e) { 
     echo 'Connection failed: ' . $e->getMessage(); 
    } 

    $sql = "SELECT language FROM languages;"; 

    $sth = $dbh->prepare($sql); 
    $sth->execute(); 

    echo "<select name='language' id='course'>"; 
    echo "<option>----Select Language----</option>"; 
    while($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
     echo "<option value='" . $row['language'] ."'>" . $row['language']. "</option>"; 
    } 
    echo "</select>"; 
?> 

在地方的

target.innerHTML += '<input type="text" name="timings">'; 

我应该得到一个PHP下拉列表,而不是一个文本框。

+1

而不是从服务器端打印HTML的,我会建议发送它作为一个JSON字符串 - >解析它在客户端 - >创建html – Johan

回答

1

最简单的办法,因为你有两个代码....

function create(param) { 
    'use strict'; 

    var i, target = document.getElementById('screens'); 
    target.innerHTML = ''; 
<?php 
     try { 
      $dbh = new PDO('mysql:dbname=theaterdb;host=localhost','tiger','tiger'); 
     } catch (PDOException $e) { 
      echo 'Connection failed: ' . $e->getMessage(); 
     } 

     $sql = 'SELECT language FROM languages;'; 

     $sth = $dbh->prepare($sql); 
     $sth->execute(); 
     $combo = "<select name='language' id='course'>"; 
     $combo .= "<option>----Select Language----</option>"; 
     while($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
      $combo .= "<option value='" . $row['language'] ."'>" . $row['language']. "</option>"; 
     } 
     $combo .= "</select>"; 
?> 
    for(i = 0; i < param; i += 1) { 
     target.innerHTML +='</br>'; 
     target.innerHTML +='New Movie '+i+' '; 
     target.innerHTML += '<input type="text" name="Fname">'; 
     target.innerHTML +=' '+'Language '+' '; 
     target.innerHTML += "<?php echo $combo; ?>"; 
     target.innerHTML +='</br>'; 
     target.innerHTML +='</br>'; 
    } 
}