使用php html抓取文本区域内的文本

时间:2012-03-04 22:54:43

标签: php html sql

嘿所以我试图抓住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);

3 个答案:

答案 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;)