#php #javascript
#php #javascript
Вопрос:
Привет, у меня есть следующий код, и мне было интересно, возможно ли повторить часть PHP, чтобы переменная javascript обновлялась, даже если в таблицу была добавлена новая строка?
<script type="text/javascript" >
var total_rows = [];
<?php
$con = mysql_connect("localhost", "user", "password");
$total = mysql_query("SELECT * FROM table");
$num_rows = mysql_num_rows($total);
?>
var total_rows = "<?php echo $num_rows ; ?>";
</script>
Комментарии:
1. Повторите…. где? Когда?
2. PHP: на стороне сервера, JavaScript: на стороне клиента. Как только данные покидают сервер, PHP больше не существует.
3. Я думаю, вам нужно прочитать об AJAX
4. Не могли бы вы добавить пример желаемого результата?
5. вам нужно будет переместить часть php в отдельный скрипт и использовать AJAX для доступа к нему в вашем javascript
Ответ №1:
Не напрямую, потому что PHP работает только на стороне сервера и завершает выполнение к моменту выполнения вашего JS.
Хотя вы могли бы проверить это без перезагрузки страницы с помощью AJAX, я бы задался вопросом, полезно ли то, что вы делаете, в любом случае — клиент не должен заботиться о количестве строк в таблице как общем правиле — единственное реальное исключение, если вы создаете страницу управления базой данных, и даже тогда этополезность является спорной. Если вам нужно обновить / удалить строку из клиентского ввода, все, что вам нужно, это идентификатор строки, и если вы добавляете его, вы должны позволить базе данных сгенерировать для вас идентификатор строки с автоматически увеличивающимся первичным ключом.
Я подозреваю, что вам было бы лучше взглянуть на реализацию вашего приложения в целом, если вы достигли точки, когда вы чувствуете, что вам нужна эта информация на стороне клиента.
Ответ №2:
Вы можете использовать AJAX для обновления частей вашей страницы без перезагрузки всей страницы. Вы должны изучить это. Хорошим руководством для начала будет http://www.w3schools.com/php/php_ajax_intro.asp .
Повторение кода PHP в самом HTML невозможно, поскольку код PHP недоступен на странице HTML. HTML-страница является результатом выполнения PHP-скрипта.
Ответ №3:
Вам нужно будет использовать AJAX, чтобы попасть в файл, который выбирает PHP и возвращает нужную строку.
Ответ №4:
Вам нужно будет обновить свой запрос, чтобы получить последнее количество, поэтому я бы сделал что-то вроде этого. в этом примере используется jquery: http://api.jquery.com/jQuery.get /
function get_updated_rows(){
$.get('count.php', function(data) {
var total_rows = data;
})
return total_rows;
}
Вы count.php файл будет содержать php:
<?php $con = mysql_connect("localhost", "user", "password");
$total = mysql_query("SELECT * FROM table");
$num_rows = mysql_num_rows($total);
echo $num_rows;
?>
затем, когда вам понадобится обновленный счетчик, просто используйте свою функцию: get_updated_rows();
Комментарии:
1. Просто нет. PHP — это серверная часть, вы не можете просто выполнить из JS вот так. Ваша функция всегда будет возвращать значение, которое было сгенерировано при загрузке страницы.