2016-12-23 3 views
2

У меня есть страница, содержащая список из 4 кликов (href) ссылок. Каждая ссылка направляется на ту же страницу представления формы. Пользователь отправляет форму и возвращается на исходную страницу, и их кликнутая ссылка теперь отключена, оставив 3 оставшихся доступных для ссылки ссылок. Этот процесс может быть повторен до тех пор, пока не останется никаких доступных ссылок. Таким образом, каждая ссылка может быть нажата только один раз. Пока все хорошо ... Однако все отключенные ссылки снова включены, если страница обновлена. «Как я могу предотвратить это?». . Каждая ссылка должна быть нажата только один раз, даже если страница обновлена. Как я могу это сделать, пожалуйста? Вот мой HTML-код ...Как сохранить статус ссылки на странице обновления

<script type="text/javascript"> 
    function check(link) { 
     $(link).replaceWith($(link).text()); 
    } 
</script> 
<style> 

    a:link{ 
     color:#1DAAA1; 
     text-decoration:none; 

    } 
    a:visited{ 
     color:#1DAAA1; 
    } 
    a:hover{ 
     background-color: #ff7f00; 
     color: #FFF; 
    } 

</style> 

</head> 
<body style="background-color:#eeeeee"> 

    <table style="margin-top:200px; width:500px; background-color:#ffffff" align="center" border="5px solid"> 
     <tr align="center" > 
      <td><a href="submitform.php" target="_blank" onclick="return check(this);"> Submission 1 </a></td> 
      <td><a href="submitform.php" target="_blank" onclick="return check(this);"> Submission 2 </a></td> 
      <td><a href="submitform.php" target="_blank" onclick="return check(this);"> Submission 3 </a></td> 
      <td><a href="submitform.php" target="_blank" onclick="return check(this);"> Submission 4 </a></td> 
     </tr> 

    </table> 
</body> 
+0

Вы сохраняете это в базе данных после каждого нажатия? –

+0

Потому что, если вы этого не сделаете, вам не придется перезагружать страницу. –

+0

Функция 'check()' ничего не возвращает, поэтому вы возвращаете undefined, когда вы выполняете 'return check (this);'. – Barmar

ответ

0

Это один из способов, чтобы исправить вашу проблему.

<form action="submitform.php" method="post" name="yourform"> 
<table> 
    <tr style="text-align:center;" > 
     <td><a <?php echo $_POST["sub1"] ? "" : "href='#'"?> onclick="document.forms["yourform"].submit()" name="sub1"> Submission 1 </a></td> 
     <td><a <?php echo $_POST["sub2"] ? "" : "href='#'"?> onclick="document.forms["yourform"].submit()" name="sub2"> Submission 2 </a></td> 
     <td><a <?php echo $_POST["sub3"] ? "" : "href='#'"?> onclick="document.forms["yourform"].submit()" name="sub3"> Submission 3 </a></td> 
     <td><a <?php echo $_POST["sub4"] ? "" : "href='#'"?> onclick="document.forms["yourform"].submit()" name="sub4"> Submission 4 </a></td> 
    </tr> 
</table> 
</form> 

Вы также можете отключить ссылки и сохранить значения в такой переменной.

<a href onclick="storeVar" title="sub1">Submission1</a> 
<script> 
var arr = []; 
function storeVar(e){ 
    if(arr.indexOf($(e.target).attr("title")) == -1) 
     arr.push($(e.target).attr("title")); 
    if(arr.length > 3) 
     //do something 
} 
</script> 
+0

Ваш HTML недопустим с устаревшими атрибутами. Вам не хватает родителя '

' и 'align' устарел. – Rob

+0

И объясните, как он решает проблему OP. – cFreed

+0

Он отключает атрибут href, если значение передано на страницу –

Смежные вопросы