花了两天多的时间来寻找这个困惑的答案,我现在直接把问题贴出来。有很多提示和答案的片段,但没有一个能绝对解决我所面临的问题,因此这篇文章。
我有以下一个特定问题的脚本,我无法将文本区域的内容传递给另一个php文件,该文件通过href激活,从而触发要创建的动态表单。
这个概念是:有一个变量:"comment"有一个文本区传递通过一个表单,接受文本和存储到变量"评论"。然后,当用户单击<a href="hsl:logcall?...
超链接时,它将传递给updatedb。数据库中的updatettxt表。可以设置文本传递,但不是基于textarea的变量info…
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$comment = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<TABLE CELLSPACING="10">
<TR>
<TD>
<TABLE>
<TR>
<TD>
<p>
<b>Please use the below to start capturing your Call Description:</b>
<form method="POST">
<textarea name="comment" id="comment" rows="5" cols="45"></textarea>
</form>
</TD>
<TR>
<TD>
<?php
$comment = $_POST[comment]; // Variable who accept your data from textarea
// You don't need to use variables, but if you starter, easier to understand.
// Do something with your arrived data...
// Stupid, but for short explanation... for example echo it...
echo $comment;
?>
<a href="hsl:editrecord?formmode=edit&table=userdb&key=<?=$userdb_keysearch;?>"><img src="img/icons/call_update.gif" width="16" height="16" alt="" border="0" />Edit Details</a>
<a href="hsl:logcall?userdb.keysearch=<?=$userdb_keysearch;?>&updatedb.updatetxt=<?=($_POST[comment]);?>"><img src="img/icons/call_detail.gif" width="16" height="16" alt="" border="0" />Log New Call</a>
<a href="hsl:printme"><img src="img/icons/call_print.gif" width="16" height="16" alt="" border="0" />Print This Page</a>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</body>
</html>
这是原始的未编辑的代码
<a href="hsl:editrecord?formmode=edit&table=userdb&key=<?=$userdb_keysearch;?>">
<img src="img/icons/call_update.gif" width="16" height="16" alt="" border="0" />Edit Details</a>
<a href="hsl:logcall?userdb.keysearch=<?=$userdb_keysearch;?>">
<img src="img/icons/call_detail.gif" width="16" height="16" alt="" border="0" />Log New Call</a>
<a href="hsl:printme"><img src="img/icons/call_print.gif" width="16" height="16" alt="" border="0" />Print This Page</a>
您必须在浏览器从中获取数据并将其放入PHP可以读取的请求之前提交表单。
没有提交按钮(也没有任何JavaScript可以提交表单)。添加一个。
原因:
- 您没有
<form>
- 您没有
<input type="submit">
来提交表单 - 您正在将文本写入
<tr></tr>
,这是完全错误的。 - 你的文本区也需要像这样传递评论:
<textarea....><?=$comment;?></textarea>
- 有许多安全问题需要修复:转义字符串的有害代码,例如