这是我的javascript代码,它添加在我的php / html页面的标签中:
<script type="text/javascript">
$(document).ready(function() {
$('#status').change(function(){
var status = $('#status').val();
var html = ''; //string variable for html code for fields
if( status=="closed"){
html += '<th>Close By :</th><td align="left"><select name="close_by">'+<?php $user=mysql_query("SELECT * FROM user");
while($data=mysql_fetch_array($user)){?>+'<option value="'+<?php echo $data['username'] ?>+'">'+<?php echo $data['username']; ?>+'</option>'+<?php } ?>+'</select></td>';
}
$('#close_by').html(html);
});
});
</script>
代码就是这样,如果Status ==“closed”,那么将出现一个select标签,并且将使用mysql函数从数据库中获取选项值。但它不起作用。请帮助解决这个问题。
提前致谢。
答案 0 :(得分:1)
你做不到。 PHP / MySQL驻留在您的服务器上,而JS则在浏览器中执行。
当然,在设置HTTP requests后,您可以让浏览器通过适当的proper routes on your server与您的服务器进行互动。
答案 1 :(得分:0)
您可以将PHP混合到Javascript中。 PHP将在服务器上执行,然后在客户端上执行JS。但这很糟糕,非常糟糕的做法,也是调试的噩梦。将它们分开并使用jQuery ajax加载数据要好得多。
或者使用PHP将数据放入javascript开头的JSON对象中,并使用Javascript处理,而不是使用PHP代码连接Javascript中的字符串。
但在你的例子中,究竟是什么问题? html
变量的PHP(在HTML源代码中)的最终结果是什么?我怀疑某处有一个括号或引号错误。
答案 2 :(得分:0)
你可以用ajax
来做$(document).ready(function() {
$('#status').change(function(){
var status = $('#status').val();
if( status=="closed"){
$.ajax({
url: 'ajax.php?',//if you have parameters
success:function (response) {
$('#close_by').html(response);
}
});
}
});
});
然后为ajax请求创建一个新的php文件 ajax.php
<th>Close By :</th>
<td align="left">
<select name="close_by">
<?php $user=mysql_query("SELECT * FROM user");
while($data=mysql_fetch_array($user)){?>
<option value="<?php echo $data['username'] ?>"><?php echo $data['username']; ?>
</option>
<?php } ?>
</select>
</td>