Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP块内使用Javascript设置HTML文本框的值(使用echo)_Php_Javascript_Html - Fatal编程技术网

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

在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

我试图根据所选的HTML selectbox选项运行MySQL查询,然后获取查询结果并将其输出到HTML文本框,但没有效果。我将switch语句用于superglobal$\u GET。我试图在PHP块中使用Javascript设置HTML文本框的值(使用echo),但它不起作用。未填充文本框(仍然为空)。这可能是因为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>";   
?>
两件事:

  • 当您在浏览器中访问该站点时,可以通过检查该站点的“源代码”来验证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属性。是的。只是把你的查询块移到上面你输入的地方。我已经在我的答案中演示了如何做。