将HTML textarea POST到PHP变量而不输入

时间:2015-07-17 12:41:32

标签: javascript php jquery html css

花了两天多的时间寻找这个窘境的答案,我现在正在直接发布问题。 有很多提示和答案片段,但没有什么能够最终解决我所面临的问题,因此也就是帖子。

我有一个特定问题的以下脚本, 我无法将textarea的内容传递给另一个php文件,该文件通过href激活,触发动态表单创建。

这个概念是: 有一个变量:“评论” 通过接受文本的表单交付textarea并将其存储到变量“comment”中。 然后,当用户单击<a href="hsl:logcall?...超链接时,会将其传递到数据库中的updatedb.updatetxt表。 可以设置要传递的文本,但不能使用基于textarea信息的变量...

这是html / php代码:

<!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;?>">
<im‌​g 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>

2 个答案:

答案 0 :(得分:0)

您必须先提交表单,然后浏览器会从中获取数据并将其放入PHP可以读取的请求中。

您没有提交按钮(也没有提交表单的JavaScript)。添加一个。

答案 1 :(得分:0)

原因:

  • 您还没有<form>
  • 您没有<input type="submit">提交表单
  • 您正在将文字写入<tr></tr>,这完全不正确。
  • 您的textarea需要传递评论:<textarea....><?=$comment;?></textarea>
  • 您需要修复许多安全问题:例如,转义字符串的有害代码
祝你好运