在PHP块内使用Javascript设置HTML文本框的值(使用echo)
我试图根据所选的HTML selectbox选项运行MySQL查询,然后获取查询结果并将其输出到HTML文本框,但没有效果。我将switch语句用于superglobal$\u GET。我试图在PHP块中使用Javascript设置HTML文本框的值(使用echo),但它不起作用。未填充文本框(仍然为空)。这可能是因为PHP是在文本框初始化之前运行的,还是我缺少了什么?我确信DB登录信息是正确的,并且查询确实有效。代码如下在PHP块内使用Javascript设置HTML文本框的值(使用echo),php,javascript,html,Php,Javascript,Html,我试图根据所选的HTML selectbox选项运行MySQL查询,然后获取查询结果并将其输出到HTML文本框,但没有效果。我将switch语句用于superglobal$\u GET。我试图在PHP块中使用Javascript设置HTML文本框的值(使用echo),但它不起作用。未填充文本框(仍然为空)。这可能是因为PHP是在文本框初始化之前运行的,还是我缺少了什么?我确信DB登录信息是正确的,并且查询确实有效。代码如下 <?php ---db login info here--- s
<?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部分是否正常工作(该
部分是否与您期望的一样?)
请注意,“textbox”必须出现在文档中早于此脚本的位置
如果所讨论的元素是
,则它没有值
属性,您需要使用innerHTML
或类似的属性
如何实现这一点可能存在更大的问题(这是ajax吗?所有一个请求?为什么不简单地用php编写文本框?)
编辑,用PHP来做
如果是您的代码编写了
,那么首先只需使用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;?>" />
开关($\u GET['string']))
{
案例“另一个字符串”:
$query=mysql\u query(“从表1中选择字段1,其中id='1'”);
$row=mysql\u fetch\u row($query);
$textboxValue=$row[0];
打破
}
?>
// ...
为什么要输出javascript来更新php可以处理的输入值而不涉及js?是的…Jakub说的…为什么不直接用php填充输入值?我是php新手,所以我不知道如何直接用php填充输入值。如果有任何帮助,我们将不胜感激。fwiw(使用您现有的技术),为了提供全面的帮助,我们应该查看您试图修改的输入的HTML(具体来说,它是否具有id=“text box”
属性?这些都是很好的要点。查看“源代码”时,脚本似乎很好HTML文本框在此PHP脚本之前初始化。我没有使用文本区域。我使用的是文本框。我没有使用Ajax。我不确定“所有一个请求”和“用PHP编写文本框”是什么意思我的意思是,你有权访问脚本中创建输入的部分吗?这显然是设置其值的正确位置。你可能想在上面使用htmlentities
。我有。只是。你是说在这里设置值吗?我不确定如何获取查询结果并将其设置为此处的value属性。是的。只是把你的查询块移到上面你输入的地方。我已经在我的答案中演示了如何做。