我正在尝试根据选择的HTML选择框选项运行MySQL查询,然后获取查询结果并将其输出到HTML文本框中,但无济于事。我正在使用带有超全局 $_GET 的 switch 语句。我正在尝试在 PHP 块(使用 echo(中使用 Javascript 设置 HTML 文本框的值,但它不起作用。文本框未填充(仍为空(。这可能是因为 PHP 在文本框初始化之前正在运行,还是我缺少其他内容?我确定数据库登录信息是正确的,并且查询实际上有效。代码如下。
<?php
---db login info here---
switch($_GET['string'])
{
case "another string":
$query = mysql_query("SELECT field1 FROM table1 WHERE id = '1'");
$row = mysql_fetch_row($query);
break;
}
echo "<script type='text/javascript'>";
echo "document.getElementById('textbox').value = '$row[0]'";
echo "</script>";
?>
几件事:
-
当您在浏览器中访问站点时,您可以通过检查站点的"源代码"来验证 PHP 部分是否正常工作(
<script>
部分是否看起来像您期望的那样? -
请注意,"文本框"必须比此脚本更早出现在文档中,如所写
-
如果所讨论的元素是
<textarea>
,它没有value
属性,您需要使用innerHTML
或类似属性。 -
如何完成此操作可能存在更大的问题(这是ajax吗?所有请求?为什么不简单地用php编写文本框?(
编辑,用PHP做
如果是你的代码编写了<input>
,那么首先用php来做(那么你可以获得没有js依赖的额外好处:
switch($_GET['string'])
{
case "another string":
$query = mysql_query("SELECT field1 FROM table1 WHERE id = '1'");
$row = mysql_fetch_row($query);
$textboxValue = $row[0];
break;
}
?>
// ...
<input type="text" name="foo" id="textbox" value="<?php echo $textboxValue;?>" />