onClick $ var ++ не работает - PullRequest
0 голосов
/ 31 марта 2011

Я действительно новичок в PHP или любом языке на основе Си. Я пытался заменить систему рейтинга Joomla большими пальцами, и я не могу заставить ее работать.

<?php
$voteup = 0;
$votedown = 0;



?>

<INPUT type="button" value="Vote Up" onClick="<?php echo $voteup++?>;">
<?php       echo $voteup;  ?> 

Теперь он показывает 1 в браузере и ничего не возвращает при нажатии. Должно быть по-другому. Почему эти линии не эффективны? Я пробовал некоторые другие форматы, включая href = javascript и кнопку отправки.

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Вам нужно использовать какую-то базу данных для хранения ваших голосов.

Переменные не являются постоянными при загрузке страницы, поэтому вы фактически устанавливаете переменные в 0 при каждой загрузке страницы.

Кроме того, PHP-код, который вы вводите в onClick, всегда выполняется, поэтому вы всегда увеличиваете $voteup.

Я рекомендую вам взглянуть на руководство, например "HOW-TO: голосование в стиле Reddit с PHP, MySQL и jQuery", и посмотрите, поможет ли это вам начать.

Поскольку вы работаете в Joomla, вам потребуется доступ к базе данныхпо-другому, однако.Чтобы узнать, как это можно сделать, взгляните на « Как использовать классы базы данных в вашем скрипте ».В нем есть короткие примеры того, как взаимодействовать со слоем базы данных Joomla.Затем, когда вы найдете какой-нибудь специфичный для MySQL код, попробуйте посмотреть, сможете ли вы перенести его на эти методы.

0 голосов
/ 31 марта 2011

Вы смешиваете серверную и клиентскую стороны, код, который браузер видит после анализа и отправки сервером, выглядит примерно так:

<INPUT type="button" value="Vote Up" onClick="0">
1

просто проверьте источник.

Вам потребуется обработчик javascript onClick, который обрабатывает клиентскую часть, чтобы при щелчке кто-то отправлял на сервер запрос на обновление вашей переменной (которую, кстати, нужно где-то сохранить), и пользователь либо направлены на новую обновленную страницу или вы используете javascript для обновления содержимого текущей страницы.

0 голосов
/ 31 марта 2011

PHP основан на сервере, javascript основан на клиенте.Так что это никогда не сработает.

Что вам нужно, это что-то.как AJAX -> http://www.ajaxf1.com/tutorial/ajax-php.html

также вам нужна БД для хранения голосов!

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