嘿所以我试图抓住textarea中的用户输入文本但是效果不好。发生的事情是我们从服务器抓取文本(电影评论),我们希望用户能够更新它然后将其发送回服务器。谁知道我们做错了什么? 我们没有收到任何错误,只是我们无法获取textarea字段数据。我们是php和html的新手,所以我认为它是我们忽略的一些小型。
更新:完全填写此处。
http://dl.dropbox.com/u/21443163/Reviews.php
http://dl.dropbox.com/u/21443163/updateReview.php
while($RecordSetMovieRow = odbc_fetch_array($RecordSetMovie))
{
echo "<tr>";
$review = $RecordSetMovieRow['Review'];
echo "<td align = 'center'>" . $RecordSetMovieRow['FirstName']. $RecordSetMovieRow['LastName'] . "</td>";
echo "<td align = 'center'><textarea name = 'textarea' rows = '5' cols= '40'>" . $review . "</textarea></td>";
$textarea = $_GET['textarea'];
$u = $Re[0];
echo "<td><form action = 'updateReview.php?id=".$RecordSetMovieRow['ReviewID']."&review=$textarea' method = 'POST'><input type='submit' value='Update'></form></td>";
echo "</tr>";
}
echo "</table>";
odbc_close($Conn);
答案 0 :(得分:3)
您在表单定义中提到method='POST'
(这是正确的),但尝试检查$_GET['textarea']
(这两种方式都是错误的)。我建议修复后者:在URL本身发送大块文本通常不是很好。
不要忘记摆脱&review=$textarea
;无需在两个不同的变量中发送两次内容。 )
答案 1 :(得分:3)
您的代码,只需进行一些小的调整即可从表单中获取正确的数据。但是归功于raina77ow - 他的答案绝对正确。我刚刚看到你要求一些代码,所以在这里。
此外,您需要使用表单标记,以便textarea是WITHIN,否则它不是表单的一部分,并且它的数据不会被发布(该编辑包含在下面)。
echo '<form action = 'updateReview.php?id=".$RecordSetMovieRow['ReviewID']."' method = 'POST'>'; // Moved this outside of the while - BUT it needs to be BEFORE the <table> tag also!
echo '<table>'; // If this is not where you want your opening table tag, that's fine - but move the opening FORM tag to BEFORE the opening Table tag
while($RecordSetMovieRow = odbc_fetch_array($RecordSetMovie))
{
echo "<tr>";
$review = $RecordSetMovieRow['Review'];
echo "<td align = 'center'>" . $RecordSetMovieRow['FirstName']. $RecordSetMovieRow['LastName'] . "</td>";
echo "<td align = 'center'><textarea name = 'textarea' rows = '5' cols= '40'>" . $review . "</textarea></td>";
$textarea = $_POST['textarea']; // Changed from $_GET["textarea"] because you are using method='post' in form
$u = $Re[0];
echo "<td><input type='submit' value='Update'></td>";
echo "</tr>";
}
echo "</table>";
echo '</form>'; // Moved this to the end of the form, so data from form will get passed
odbc_close($Conn);
答案 2 :(得分:3)
如果要将大块数据发送到数据库,请将所有内容都包含在method=POST
名称/属性
<form action="updatingScript.php" name="myForm" method="POST" >
<textarea name="textArea" rows="5" cols="40"><?=$review ?></textarea>
</form>
然后在你的updatesScript.php中执行此操作
if(isset($_POST['myForm'])) {
$textInfo = mysql_real_escape_string($_POST['textArea']);
//move this info in your database
mysql_connect("localhost", "root", "");
mysql_select_db("myDb")
$query="UPDATE myTable SET userTextInfo='$textInfo' WHERE userId='$userId' ";
$result=mysql_query($query);
}
同时在PHP脚本的开头设置error_reporting(E_ALL);
,因为这会显示出错的地方(响应您的&#34;我们没有收到任何错误&#34;)