所以这是我表格的一部分。但是我使用的部分" echo"是(根据我的老板)不是一个好的解决方案。 我必须以某种方式使用JavaScript。 我真的不明白" echo"有什么问题,可以请有人解释一下吗? 以及如何使用JS代替" echo"?
<td>Projekt: </td>
<td><select name="Projekt">
<?php
$result = mysql_query("select name from project");
while($row = mysql_fetch_array($result))
{
echo '<option value="" selected> </option>';
echo '<option value="' .$row['name'] .'">'.$row['name'].'</option>';
}
?>
</select>
</td>
答案 0 :(得分:0)
这是PHP,除了回显HTML标签之外,这个代码没有任何问题,这可能就是他的意思。试试这个:
<td>Projekt: </td>
<td><select name="Projekt">
<option value="" selected="">
<?php
$result = mysql_query("select name from project");
while($row = mysql_fetch_array($result)): ?>
<option value="<?php echo $row['name'] ?>"><?php echo $row['name'] ?></option>
<?php endwhile; ?>
</select>
</td>
另请注意我是如何移动<option value="" selected="">
的。如果它在while
循环中,你会得到很多我怀疑不是你想要的东西:)
答案 1 :(得分:0)
我注意到您的代码中存在一些基本的设计缺陷,可能与您的老板要求您做的事情有关。
你真的不应该在你的模板php文件中有数据库查询代码,并与你的html代码混合。为避免这种情况,您应该使用MVC或类似方法,以防您想要在服务器端呈现模板。有Silex或Symfony这样的框架和库可以帮助您通过完成大部分工作来实现这一目标。
无论如何,为了使用Javascript渲染这些选项,您首先需要解决将它们带到用户浏览器的问题(正如其他用户已经评论过的那样)。您可以轻松地使用jQuery进行AJAX调用(如果您使用它,可以使用大量的文档和教程),但假设您已将它们存储在Javascript变量中,您可以编写类似这样的内容(它使用jQuery) :
<td>Projekt: </td>
<td>
<select name="Projekt" id="projects">
<option value="" selected> </option>
</select>
</td>
<script>
// projects are stored in a variable named projects
var select = $('#projects');
projects.forEach(function(project) {
select.append('<option value="'+project+'">'+project+'</option>');
});
</script>
还有很多Javascript框架和库可以帮助您实现这种行为,让您可以使用模板,数据绑定和其他有用的内容,例如AngularJS,Backbone等。 / p>
快乐的编码!