Я столкнулся со следующей проблемой при попытке создать мобильное приложение, которое генерирует его контент на основе базы данных MySQL.
Моя проблема в том, что когда я хочу перейти со страницы «А» на страницу «Б», страница «Б» полностью пуста, если только страница «Б» не открыта в новой вкладке, и в этом случае она отображает запрошенное содержимое без каких-либо недостатки.
Код, который я использую (упрощенно):
<div data-role="page" id="main">
<div data-role='header' data-position='fixed'>
<a href='#home' class='ui-btn-right' data-icon= 'home' data-iconpos='notext' data-direction='reverse'></a>
<h2>Activities</h>
</div>
<?php
//(I'll keep the login and connection code out since it is irrelevant to the problem)
$result = mysql_query("SELECT DISTINCT profession FROM members",$mysql) or die("");
$query_amount = mysql_query("SELECT richting, COUNT(*) AS aantal FROM sport GROUP BY profession",$mysql) or die("");
$query_membernr = mysql_query("SELECT membernr FROM members",$mysql) or die("");while(list($r) = mysql_fetch_row($query_amount))
{
$profession[]=$r;
print ("<div data-role='content'>
<ul data-role='listview' data-inset='false' id='pag1'>
<li>
<a href='index.php?richtingstack=$r#2a'>
<img src='images/something.jpg' height='80' align='middle' />
<p><h2>
$r
</h2></p>
</a>
</li>
</ul>
</div>
<div data-role='footer' data-position='fixed'><h2>Kies een activiteit</h2>
</div>") ;}
?></div>
Эта страница (страница «А») работает отлично и генерируется меню запрашиваемых данных.
Он создает список профессий от всех пользователей БД. (участники)
Когда кто-то нажимает одну из кнопок в этом списке, он должен перейти на страницу (без перезагрузки всего приложения) со списком участников, к которым относится данная профессия. Эта страница является страницей 2a и объединена с переменной GET.
По какой-то причине, когда я нажимаю одну из этих кнопок, появляется страница №2a, но она полностью лишена содержимого, за исключением верхнего и нижнего колонтитула, которые, как правило, не создаются.
ОДНАКО, если я щелкну правой кнопкой мыши по одной из кнопок и открою ссылку в новой вкладке (перезагрузка приложения, так сказать, на другой вкладке), она работает отлично. Я действительно оценил бы это, если бы кто-то мог сказать мне, что я делаю неправильно, чтобы я мог продолжить.
PHP не может создавать контент после выполнения.
То, что вы ищете, это AJAX (Async JavaScript и XML). По сути, это позволяет вам извлекать контент из любой точки мира без необходимости перезагрузки страницы. Клиентская часть — чистый JavaScript. Вы можете, например, загрузить страницу http://yourdoma.in/index.php?tab=B а затем заменить ваш div data-role="content"
с текстом с этой страницы.
Лично я предпочитаю использовать jQuery для AJAX, потому что писать и читать будет довольно раздражающе со всей обработкой ошибок, которую вам придется делать с чистым javascript. Вы можете найти JQuery AJAX-документацию Вот. Или, если вы хотите использовать чистый JavaScript, Вот.
Если вы хотите иметь динамический сайт без перезагрузки, используйте AJAX.
Для этого вы можете просто использовать Ajax, который поможет вам без перезагрузки страницы. Предположим, как это
$.ajax({
url: "test.php",
type: "post",
data: data of you want,
success: function(content){
$("#B").html(content);
},
error:function(){
$("#B").html('Content loaded problem');
}
});