使用PHP块内的Javascript设置HTML文本框的值(使用echo)

时间:2012-08-29 15:55:44

标签: php javascript html

我正在尝试根据选择的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>";   
?>

1 个答案:

答案 0 :(得分:2)

夫妻俩:

  1. 当您在浏览器中访问该网站时,您可以通过检查网站的“来源”来验证PHP部分是否正常工作(<script>部分是否与您期望的一样?)

  2. 请注意,“文本框”必须在文档中比此脚本更早出现,如

  3. 如果相关元素是<textarea>,则它没有value属性,您需要使用innerHTML或类似内容。

  4. 关于如何实现这一点可能存在更大的问题(这是ajax吗?所有的一个请求?为什么不简单地用php创建文本框?)

  5. 编辑,用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;?>" />