我正在尝试根据选择的HTML选择框选项运行MySQL查询,然后获取查询结果并将其输出到HTML文本框但无效。我正在使用带有超全局$ _GET的switch语句。我正在尝试使用PHP块内的Javascript(使用echo)设置HTML文本框的值,但它不起作用。文本框未填充(仍为空白)。这可能是因为PHP在文本框初始化之前正在运行,还是我还缺少其他东西?我确信DB登录信息是正确的,查询实际上是有效的。代码如下。
<?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>";
?>
答案 0 :(得分:2)
夫妻俩:
当您在浏览器中访问该网站时,您可以通过检查网站的“来源”来验证PHP部分是否正常工作(<script>
部分是否与您期望的一样?)
请注意,“文本框”必须在文档中比此脚本更早出现,如
如果相关元素是<textarea>
,则它没有value
属性,您需要使用innerHTML
或类似内容。
关于如何实现这一点可能存在更大的问题(这是ajax吗?所有的一个请求?为什么不简单地用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;?>" />