2017-08-09 57 views
-1

如何在提交表单后阻止页面跳转到顶部。我在我的网页中没有使用任何JavaScript。所以我更喜欢没有JavaScript的解决方案。这是我的代码:停止不使用JavaScript跳转php和html的页面

<div > <?php $product_array = $db_handle->runQuery("SELECT * FROM table ORDER BY id ASC"); 
if (!empty($product_array)) { 
    foreach($product_array as $key=>$value){ 
?> 
    <div class="product1"> 
     <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> 
      <div ><a href="<?php echo $product_array[$key]["Description"]; ?>"><img class="centerimage" src="<?php echo $product_array[$key]["Picturepath"]; ?>"></a></div>  
     <div class="centerprice"><?php echo $product_array[$key]["name"]; ?>(
     <?php echo $product_array[$key]["price"]."&#8364"; ?>)</div> 
     <div class="quaadd"><input type="text" class="size1" name="quantity" value="1" size="2" /><input class="btn btn-success" type="submit" value="Add to cart" /></div> 
     </form> 
    </div> 
<?php 
     } 
} 
?> 
</div>  
+1

你的网页是不是“跳顶端” - 当你提交表单浏览器加载页面 - 所以客户端实际观看新的一页的第一次。您可以在提交后“向下滚动”到相关元素,或阅读关于ajax的内容。 – Dekel

+0

您的页面实际上并不是“跳到顶部”,因为您提交表单,页面正在刷新。 如果您使用AJAX提交表单,这不会发生。 – Difster

+1

会自动完成此表单发送,如果是这样,当您提交表单时,它会将数据发布到操作中的页面。它会执行一个完整的页面请求,以便将页面加载为新的页面,因此会进入页面顶部。所以如果你想要它去到该页面的一个部分,然后看看添加锚标签,让你到relaod –

回答

1

将ID属性添加到要滚动到的元素,然后将其包含在链接中。

例如:你想看到最上方DIV CLASS = “quaadd” 所以你需要id属性添加到它(ID = “SHOWME”):

<div class="quaadd" id="ShowMe"> 
    <input type="text" class="size1" name="quantity" value="1" size="2" /> 
    <input class="btn btn-success" type="submit" value="Add to cart" /> 
</div> 

然后修改表格行动(我猜你是subbmiting这种形式的index.php) 行动=“的index.php?行动=添加&码= your_code#SHOWME

编辑(如果你想在网页‘跳’的元素您已加入购物车):

<div > <?php $product_array = $db_handle->runQuery("SELECT * FROM table ORDER BY id ASC"); 
if (!empty($product_array)) { 
    $i=1; 
    foreach($product_array as $key=>$value){ 
?> 
    <div class="product1" id="product_<?php echo $i; ?>"> 
     <form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>#product_<?php echo $i; ?>"> 
      <div ><a href="<?php echo $product_array[$key]["Description"]; ?>"><img class="centerimage" src="<?php echo $product_array[$key]["Picturepath"]; ?>"></a></div>  
     <div class="centerprice"><?php echo $product_array[$key]["name"]; ?>(
     <?php echo $product_array[$key]["price"]."&#8364"; ?>)</div> 
     <div class="quaadd"><input type="text" class="size1" name="quantity" value="1" size="2" /><input class="btn btn-success" type="submit" value="Add to cart" /></div> 
     </form> 
    </div> 
<?php 
$i++; 
     } 
} 
?> 
</div> 
+0

之后你想要的位置我试过了,但它把我固定的地方在第二次原料的产品不是我在哪里点击。 我有产品可以达到数千看到该网站www.merebuy.com – hussam

+0

你需要设置ID为所需的元素,我想你想要页面“跳”到您添加到购物车的产品?检查我更新的答案。 –

+0

非常感谢你Jan ...解决了问题 您的代码正在工作 – hussam

0

确定试图解释我的

以下内容添加到您的行动网址的结尾:

<form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>#ADD-YOUR-ID-HERE"> 
    ... 
    </form> 

然后,在该地区,你会喜欢的页面去提交后,加锚点ID如下:

<a id="ADD-YOUR-ID-HERE" name="ADD-YOUR-ID-HERE"></a> 

然后一旦提交页面就会直接跳到那个锚点。

如果您然后想要平滑滚动,那么您将需要使用js劫持hashtag并进行滚动。

注意,您可以将url查询添加到表单中,而不是url本身。

?action=add&code=<?php echo $product_array[$key]["code"] 

    <input type="hidden" name="code" value"<?php echo $product_array[$key]["code"]?>" /> 
    <input type="hidden" name="action" value="add" /> 

减少您的行动网址

<form method="post" action="index.php#ADD-YOUR-ID-HERE">