Динамически изменяемые переменные PHP - PullRequest
1 голос
/ 16 августа 2010

У меня есть веб-сайт, который берет случайную запись из базы данных и отображает ее для просмотра.Это код, который я сейчас использую:

$rows = "SELECT * FROM xxx";
$rows1 = mysql_query($rows);
$rows2 = mysql_numrows($rows1);
$id= rand(1, $rows2);

Это генерирует идентификационный номер, который используется для выбора соответствующей записи в базе данных, и, конечно, есть больше php, который отображает запись.

Чтобы пользователь сгенерировал новую запись из базы данных, он нажимает кнопку, которая обновляет страницу с помощью этого кода:

<form>
<input type=button value="Show me another one" onClick="window.location.reload()">
</form>

Это работает нормально, но вызывает проблему с Google Adsense;это заставляет Adsense записывать огромное количество показов страниц от данного отдельного пользователя.Я не переписывался с Google по этому поводу, но, похоже, я играю в систему для рекламодателей, которые платят «за показ».Я обеспокоен тем, что это приводит к тому, что Google автоматически запрещает мне получать доход от рекламы "за показ" и может привести к отзыву моего аккаунта Adsense.

Итак, мой вопрос: как создать кнопку, которая будет извлекать другую запись из базы данных, не обновляя страницу?По сути, мне нужно найти способ изменить переменную «$ id» после того, как пользователь нажмет кнопку.

1 Ответ

2 голосов
/ 16 августа 2010

У вас есть несколько способов достичь того, что вы пытаетесь сделать.

Если вы хотите сохранить свои знания HTML и PHP, вы можете решить свою проблему, установив на свою страницу IFRAME с кнопкой перезагрузки внутри. Конечно, вы не вставили бы трекер Google на страницу, открытую IFRAME. Вы можете скрыть плохой стиль IFRAME по умолчанию с небольшим количеством CSS, чтобы он не выделялся на вашей существующей странице.

Однако это далеко не лучший способ справиться с этим.

Вам следует, как предлагает deceze, прибегнуть к Ajax для динамического получения новой информации через Javascript. Чтобы справиться с этим максимально безболезненно, я предлагаю вам выбрать среду Javascript, чтобы оставить все раздражающие кросс-браузерные биты на ней.

Например, с помощью jQuery вы можете делать следующее (HTML + javascript)

<!-- new content will appear in the div down below -->
<div id="content-target">
</div>

<form>
  <input type="button" id="refresher" />
</form>

<script type="text/javascript">
  $('#refresher').click(function(){
    $('#content-target').load('generator.php');
    return false;
  });
</script>

Вам следует потратить некоторое время на изучение JS-фреймворка. Это очень хорошая инвестиция.

Для jQuery: http://jquery.com/

Прототип: http://www.prototypejs.org/

MooTools: http://mootools.net/

Додзё: http://www.dojotoolkit.org/ (перебор для этого вида сценария)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...