阻止在锚标记上刷新页面

时间:2016-03-10 10:20:49

标签: php html anchor page-refresh

由于我的问题似乎很常见,但我在stackoverflow上提到了我的问题,但没有得到我的解决方案。我也提到How to avoid page refreshing on anchor (<a></a>) tag click?链接。

我的问题:

我使用两个下拉列表来过滤数据。我已完成过滤并根据数据表中的结果获得数据。现在我对带有锚标记的数据表进行了三次操作。当我点击该锚标记时,我的过滤数据将无法维护并且结果清晰。

请帮我解决这个问题。

我的代码段: 两次下拉

 <form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> 
 <div class="controls col-md-3">    
          <select required id='selectError2' placeholder='select Category' class='form-control' name='category'>
            <option value=''>Select Category</option>
               <?php 
                   include("db.php");
                   $sql="SELECT * FROM category";
                   $result=mysql_query($sql);       
                   while($row = mysql_fetch_array($result)){
                       echo "<option value='". $row['category_name'] ."' >". $row['category_name'] ." </option>"; 
                   }
                ?>
        </select>
</div>
<div class="controls col-md-3"> 
             <select required id='selectError2' placeholder='select subcategory'  class='form-control' name='subcategory'>
                <option value=''>Select SubCategory</option>
                     <?php 
                         include("db.php");
                         $sql="SELECT * FROM subcategory";
                         $result=mysql_query($sql);
                         while($row = mysql_fetch_array($result)){
                              echo "<option value='". $row['subcategory_name'] ."'>". $row['subcategory_name'] ."</option>";                                
                         }
                     ?>
         </select>
</div>
<div class="controls col-md-2">
      <input type="submit" class="btn btn-default" name="btn_submit" style="font-weight:bold" value="GO"/>
</div>
</form>
</tr>
</thead>
</table> 

我的其他数据表部分是:

<?php             
              while($row = mysql_fetch_array($result)){    
                 /* other stuff */
                 <a class='btn btn-danger' href='product_delete.php?product_id=".  $row['product_id'] ."'>
                     <i class='glyphicon glyphicon-edit icon-white'></i>Delete
                 </a>
                 </td>  
                 $query1 = "query"; //You don't need a ; like you do in SQL
                 $result1 = mysql_query($query1);
                 $count=mysql_num_rows($result1);
                 if($count == 1){
                      echo"<td style='text-align:center'>
                      <a href='unpublished_product.php?product_id=".  $row['product_id'] ."'>
                        <img alt='' src='/admin/img/published.png' style='width:30px;height:30px;' />           
                      </a>
                      </td>";
                  }
                  else {
                      echo"<td style='text-align:center'> 
                      <a href='published_product.php?product_id=".$row['product_id']."'>
                         <img alt='' src='/admin/img/unpublished.png' id=' ". $row['product_id'] . "' onclick='atualiza()' style='width:30px;height:30px;' />       
                      </a>
                      </td>";                     
                  }                         
                  echo"</tr>";   
             }
?>

2 个答案:

答案 0 :(得分:2)

<a href="URL">将始终更改您的位置...
您想要实现的只是使用 Ajax机制,因此请使用以下内容更新您的代码:

<a href="javascript:void(0)" onclick="YOUR_JS_FUNCTION();">Link</a>

YOUR_JS_FUNCTION()将对您的服务器执行异步请求( published_product.php?product_id = xxxx
在互联网上有成千上万的例子,向您展示如何使用或不使用其他框架的Ajax

您可以使用 JQuery

找到here示例

答案 1 :(得分:0)

如果您使用的是jquery,那么preventDefault()方法应该可以帮助您实现所需的输出。

以下是他们的官方文档:https://api.jquery.com/event.preventdefault/