2014-02-11 4 views
0

Предположим, у меня есть сайт www.mywebsite.com, который содержит строки ссылок. Когда вы нажимаете на каждую ссылку, вы получаете www.mywebsite.com/subfolder/1. Если эти ссылки динамически создаются (т. Е. Пользователь отправляет новые ссылки на www.mywebsite.com), то эти следующие страницы также должны быть динамически созданы.HTML динамическое создание подстраниц

www.mywebsite.com/subfolder/1 
www.mywebsite.com/subfolder/2 
www.mywebsite.com/subfolder/3 
... 
www.mywebsite.com/subfolder/n 

Как вы создаете эти страницы с помощью HTML/Javascript?

Примером может служить этот сайт:

http://www.postrandomonium.com/ 

Если вы видите первое поле, он содержит идентификатор 4248

Вы можете перейти на http://www.postrandomonium.com/status/4248 для просмотра веб-страницы, специфичный к информации в № 4248.

Очевидно, что эти страницы создаются «на лету», так как я могу подойти к этому в коде?

+0

Там нет вложенных папок или подстраниц - домен перезаписывается или разгромлены. Если вы используете Apache, посмотрите [mod_rewrite] (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html) – kero

+1

посмотрите на что-то, называемое MVC –

+0

Как сказал Kingkero, нет динамически созданных страниц. Нечетно есть одна страница, которая обрабатывает параметры, которые вы видите через mod_rewrite. Обычный формат был бы похож на http://www.postrandomonium.com/index.php?action = status & id = 4248' – j08691

ответ

0

Это URL переписывания: за сценой, сервер преобразует URL из читабельной форме www.mywebsite.com/subfolder/1 к серверу считываемые формы www.mywebsite.com/index.php?folder=subfolder&id=1

Вы можете использовать URL переписывания с каждым крупным сервером HTTP, как Apache или IIS

Если вы заинтересованы, чтобы написать такой сайт с PHP, я предлагаю вам использовать рамки, как Слим

http://www.slimframework.com/

или Silex

http://silex.sensiolabs.org/

+0

ОК, теперь это имеет смысл. Почему существует переписывание URL? Это для косметических целей URL? Или ... защищает ли владелец файла от возможного злоупотребления –

0

Если вы действительно хотите сделать что-то вроде этого, увидеть мое решение:

1) Создание динамически ссылки, как это: [На самом деле есть два входа, а именно тот, который кнопка, которая выглядит как ссылку и отправить другой - невидимый вход.

<html> 
    <head> 
     <style type="text/css"> 
      input[class="buttonLikeLink"] { 
       background:none; 
       border:none; 
       padding:0; 
       background-color:#FFFFF0; 
       color: #0000FF; 
      // border-bottom:1px solid #444; 
       text-decoration:underline; 
       cursor:pointer; 
       cursor:hand; 
      } 

     input[class="invisible"] { 
      background:none; 
      border:none; 
      padding:0; 
      background-color:#FFFFF0; 
      color: #FFFFF0; 
      cursor: default; 
     } 



     </style> 
    </head> 

    <body> 
     <form target="_blank" method='POST' action="generate.php"> 
      <input class="buttonLikeLink" type="submit" value="the name of the link"> 
      <input class="invisible" type="text" value="myId" name="myName"> 
     </form> 

     <form target="_blank" method='POST' action="generate.php"> 
      <input class="buttonLikeLink" type="submit" value="the name of the link 2"> 
      <input class="invisible" type="text" value="myId2" name="myName"> 
     </form> 


    </body> 

</html> 

2) generate.php просто перенаправляет это на фактической странице:

<?php 

$myId=$_POST['myName']; 

// Here you can access the database if you want using a query based on $myId 


?> 

<h1> 

    This is a very unusual solution! 

</h1> 
<p> <?php echo $myId ?> </p> 

Я надеюсь, что это решение может быть полезным для вас. Возможно, вы даже сможете его улучшить.

Поскольку @ Anthony-Garcia обратил наше внимание ниже, вы можете сделать то же самое, используя обычные ссылки и Ajax.

+0

Это не будет работать с прямой ссылкой, и вы можете эмулировать это с помощью чистых javascript и обычных ссылок. –

+0

@ Энтони-Гарсия. Вы правы - это не работает как прямая ссылка. Я не уверен, спросил ли он о прямой ссылке. Да, конечно, он может использовать AJAX для доступа к базе данных. Спасибо, что обратили мое внимание на этот важный момент. Я просто подумал, что это может быть интересное необычное решение. – DanielTheRocketMan

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