我需要将textarea标签的文本分配给php变量。我尝试这样做:
<form method="GET">
<textarea rows="4" cols="50" name="query">some string</textarea>
</form>
<?php
$query = $_REQUEST['query'];
echo $query;
?>
但我得到了
Notice: Undefined index: query in index.php on line _
我做错了什么?感谢。
答案 0 :(得分:4)
由于您在同一页面内使用了整个代码,因此在页面加载时向您发出警告是正常的。
将empty()
与该表单元素的条件语句一起使用。
if(!empty($_REQUEST['query'])){
$query = $_REQUEST['query'];
}
另外,与empty()
一起使用,isset()
使用命名提交按钮,如下所述。
if(isset($_REQUEST['submit']) && !empty($_REQUEST['query']) ){
另外,您需要添加某种类型的按钮来提交数据。
<button type="submit" name="submit">Submit</button>
或输入类型<input type="submit" value="Submit" name="submit">
例如您的<form method="GET">
否则,将表单与PHP分开,并使用<form method="GET" action="handler.php">
将HTML表单作为一个文件,将PHP放在另一个文件中。
对于这两种情况,最好使用empty()
和isset()
。
答案 1 :(得分:1)
您需要发布表单。
您没有发布它。这就是原因。
添加新元素submit
<input type="submit" name="submit" value="Submit"/>
答案 2 :(得分:1)
尝试向表单添加一个提交按钮,默认表单方法将获得,因此无需添加方法get
<form>
<textarea rows="4" cols="50" name="query">some string</textarea>
<input type="submit" name="submit">
</form>
和检查
<?php
if(isset($_GET['query'])) {
$query = $_GET['query'];
echo $query;
}?>
答案 3 :(得分:1)
你需要使用它:
// add a submit button first...
<input type="submit" name="submit">
<?php
if(isset($_GET['submit'])){
// means submit clicked!
$query = $_GET['query'];
echo $query;
print_r($_GET) // check the values of $_GET array..
}
?>