Динамически генерируемый HTML (на стороне сервера) на новой странице

В целях обучения я создаю простое веб-приложение, которое позволяет пользователям самим создавать вводную страницу. Я очень озадачен динамически генерируемым HTML на стороне сервера и тем, как он подключается к стороне клиента. В настоящее время я использую шаблоны PHP и Mustache для генерации HTML-кода страницы на стороне сервера, и это прекрасно работает.

Допустим, я набираю URL: localhost/intro.html

На intro.html есть кнопка, и если я нажму на нее, браузер откроет мне новый URL (localhost/intro.html/Adam) с вводной информацией пользователя, скажем просто "Адам".

Насколько я понимаю, это должно отправить запрос на сервер для создания HTML-страницы с информацией об Адаме и отправить эту HTML-страницу обратно в браузер.

Что я не понимаю, так это то, как это будет выглядеть в HTML, JS (JQuery) и PHP. Опять же, я могу сгенерировать HTML на стороне сервера просто отлично, но как бы нажав кнопку на localhost / intro.html изменить страницу на localhost/intro.html/Adam? Как мой PHP-код может обнаружить страницу localhost / intro.html / Adam и узнать, как сгенерировать для нее HTML-код? Как выглядит код, и мне не хватает некоторых понятий?

Любое направление, пример кода или учебники будут высоко ценится. Все, что я могу найти, это строго учебники по PHP. Спасибо!

1 ответ

Решение

Хорошо, с вашим знанием баз данных и запросов, вы можете сделать это...

Создайте свою главную страницу... мы назовем ее index.php,

1) Поместите этот JS в свой <head> тег

<script type="text/javascript">
function MM_jumpMenuGo(objId,targ,restore){ //v9.0
  var selObj = null;  with (document) { 
  if (getElementById) selObj = getElementById(objId);
  if (selObj) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0; }
}
</script>

2) Создайте форму с раскрывающимся списком с динамически генерируемыми параметрами и кнопкой отправки внутри повторяющейся области.

3) Значения для этого раскрывающегося списка будут примерно такими <option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>

4) Ваша кнопка отправки будет вызывать JavaScript, чтобы отправить вас на страницу, которую вы хотите
<input type="button" name="go_button" id= "go_button" value="Go" onClick="MM_jumpMenuGo('jumpMenu','parent',0)">

Завершена главная страница...

<form name="form1">
  <select name="name" id="name">
    <option selected>Please make a selection</option>
    <?php do { ?>
    <option value="/<?php echo $row['username'] ?>"><?php echo $row['username'] ?></option>
    <?php } while($row = $query->fetch(PDO::FETCH_ASSOC)) ?>
  </select>
<input type="button" name="go_button" id= "go_button" value="Go" onClick="MM_jumpMenuGo('select14','parent',0)">
</form>

Затем мы начнем с вашей "целевой" страницы... мы назовем ее results.php

1) Запросите базу данных для имени пользователя, передаваемого с главной страницы.

$name = $_GET['name']; // this is the name of the dropdown on the main page
SELECT * FROM mytable WHERE username=:name

2) Убедитесь, что вы связываете свои параметры $query->bindValue(':name', $name, PDO::PARAM_STR);

3) Затем вы можете отобразить информацию, которую хотите отобразить следующим образом... <?php echo $row['fieldname'] ?>

Наконец, .htaccess файл...

Создайте правило перезаписи для обработки этого...

RewriteEngine On    # Turn on the rewriting engine
RewriteCond %{REQUEST_FILENAME} !-f # if this is not a real file
RewriteCond %{REQUEST_FILENAME} !-d # if this is not a real directory
RewriteRule    ^([A-Za-z0-9_-]+)$    results.php?name=$1    [NC,L]    # Handle page requests

И вы сделали.

Удачного кодирования!

Примечание: код, который я использую pdo_mysql, Вы можете получить больше информации здесь

Другие вопросы по тегам