2012-12-19 41 views
1

我在页面上有一大堆行的dataTable。每一行都有一个ID,名字,姓氏和动作栏。在action列中有一个textarea,您可以在其中添加评论和提交该评论的按钮。当我提交评论时,我希望页面定位在原来的位置,但我无法弄清楚它是如何实现的。有任何想法吗?PHP表单提交并返回原来的位置

下面是代码的片段:

$result = mysql_query($query, $connection); 
while ($row = mysql_fetch_array($result)) { 
echo "<tr>"; 
    echo "<form method='post' action='saveComment.php#position_".$row['id']."'>"; 
    echo "<td hidden><input hidden name='id' readonly value=" . $row['id'] . " /></td>"; 
    echo "<td>" . $row['name'] . "</td>"; 
    echo "<td>" . $row['surname'] . "</td>"; 
    echo "<td><input type='submit' name='submit' value='Comment'/></td>"; 
    echo "<a id='position_".$row['id']."'></a>"; 
echo "</tr>"; 
} 

我试图通过当前行的ID,节省了注释的剧本,它传递价值,在这之后应该放置它放回原处它是,但它似乎并没有工作:/

+0

最简单的方法是实现AJAX提交 - 那么页面不会重新加载,你不需要担心位置变化。 – Aurimas

+0

我用ajax试过了,但是因为我从来没有用过它,所以我并没有真正体验过它。你有任何教程吗?我发现了一些,尝试过,但它没有工作......这似乎很容易做... –

回答

1

我发现了它的工作原理与锚!问题在于,当重定向回原始页面时,我没有在saveComment.php脚本中传递id。

代码的页面,形式是:

if ($_POST['submit']){ 
$id=$_POST["id"]; 
header('Refresh: 0.5; URL=originalPage.php#position_' . $id); 
//...rest of code goes here... 
} 

就是这样:)

0

您需要使用

<a name='position_".$row['id']."'></a> 

,而不是

<a id='position_".$row['id']."'></a> 
+0

试过了。没有工作。感谢您的帮助,虽然:) –

1

使用了Ajax提交表单,并成功:

window.location = 'saveComment.php#position_<? echo $row['id']; ?>';