PHP在heredoc之外回显HTML输入变量

时间:2014-12-09 20:31:13

标签: javascript php html

我使用heredoc在PHP中包含我的HTML,我想获取heredoc内部的用户输入变量,并将其回显。我尝试使用$ _GET ["输入"],但我得到错误未定义索引:输入 我可以知道如何获取输入变量吗?

<?php
$htmlfile= <<<html
<!DOCTYPE html>

<html>

<head>
<meta charset="utf-8">
<title>Seller Evaluation System</title>
<style type="text/css">
    body {background-image:url("images.jpg");}
</style>
</head>

<body>
<h1><center><font color="darkblue">Seller Evaluation System</font><center></h1>

    <p><center>
        <script>
            function searchSite(){
            var input=document.getElementById("searchinput").value;
            var searchForm=document.getElementById("searchForm");
            searchForm.action="http://www.mudah.my/Malaysia/Electronics-3000/"+input+"-for-sale?lst=0&fs=1&q="+input+"y&cg=3000&w=3&so=1&st=s";
            searchForm.submit();
        }
        </script>

        <form method="get" action="ttt.php" id="searchForm">
        <input type="text" id="searchinput" size="33" placeholder="Search Electronic Gadgets..." autofocus>
        <button onclick="searchSite()">Search</button>
        </form>

        <p><label>Mudah<input type="checkbox" name="searchFrom" value="Mudah" checked/></label>
        <label><font color="grey">Lazada</font><input type="checkbox" name="searchFrom" value="Lazada" disabled="disabled"/></label>
        <label><font color="grey">Lelong</font><input type="checkbox" name="searchFrom" value="Lelong" disabled="disabled"/></label>
        <label><font color="grey">Ebay</font><input type="checkbox" name="searchFrom" value="Ebay" disabled="disabled"/></label></p>
    </center></p></br>
</body>
</html>
html;

echo $htmlfile;

$userInput=$_GET["input"];
echo $userInput;
?>

2 个答案:

答案 0 :(得分:0)

$_GET[..]获取表单元素的名称。因此,在您的HTML中,您需要包含:

<input type="text" name="input" id="searchinput" size="33" placeholder="Search Electronic Gadgets..." autofocus>

另请注意,您只想在提交表单时获取该项目,您需要先检查GET是否存在:

// If we submitted our form with a element named "input", then echo
if(isset($_GET["input"]) {
    $userInput=$_GET["input"];
    echo $userInput;
}

这样,只有在提交表单时才会运行代码。

答案 1 :(得分:0)

您必须调用输入名称“searchinput”。但是如果你没有发送表格就无法使用它,你必须用“name”标签来呼叫它,noy用“id”。

你可以使用Javascript发送后显示它,没有PHP。

这样可行,但表单必须由同一个文件处理,因此“action”必须为空。如果没有,您可以在文件中获取GET参数处理表单,在您的示例中为ttt.php

<?php
$htmlfile= <<<html
<!DOCTYPE html>

<html>

<head>
<meta charset="utf-8">
<title>Seller Evaluation System</title>
<style type="text/css">
    body {background-image:url("images.jpg");}
</style>
</head>

<body>
<h1><center><font color="darkblue">Seller Evaluation System</font><center></h1>

    <p><center>



        <form method="get"  id="searchForm">
        <input type="text" name="searchinput" size="33" placeholder="Search Electronic Gadgets..." autofocus>
        <button type="submit">Search</button>
        </form>


    </center></p></br>
</body>
</html>
html;

echo $htmlfile;

$userInput=$_GET["searchinput"];
echo $userInput;
?>