2012-12-19 56 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']; ?>';