PHP функция в javascript
Приветствую!
Данный код отображает введенный в инпуте текст на странице. <input type="number" name="add" id="add" value="100"> <span id="infomsg"></span> <script> $('#add').keyup(function(){ var Price = '<?=$price;?>'; var Value = $('#add').val(); var Total = Value * Price; var Total = '<?=action(Total);?>'; // <-- php функция $('#infomsg').empty(); $('#infomsg').text(Total); }); </script> Есть php функция action, не получается добавить ее в этот код, подскажите что можно сделать? |
|
Цитата:
|
В чем отличие клиента от сервера знаешь?) Тогда не причем.
Не забывай echo. <input type="number" name="add" id="add" value="100"> <span id="infomsg"></span> <script> $('#add').keyup(function(){ var Price = '<?= echo($price); ?>'; var Value = $('#add').val(); var Total = Value * Price; var Total = '<?= echo(action(Total)); ?>'; // <-- php функция $('#infomsg').empty(); $('#infomsg').text(Total); }); </script> |
Цитата:
Т.е. нельзя путать теплое с мягким. А конкретно по коду - 1. почему переменная Total объявляется дважды - в 7й и 8й строке?.. Это некорректно. 2. в пхп-вставке в качестве аргумента функции action используется функия Total - она где-то определена в скрипте пхп?.. (2.1. если вы таким семантическим способом пытаетесь передать javascript переменную Total из клиента в php-функцию action на сервере -- то это большая ошибка есть.) |
Вот как бы вы добавили в php переменную js?
var abc = '1'; <?php echo ??? ?> |
Цитата:
|
var Total = '<?php echo action('"+Total+"');?>';
так не получается.. |
Ты что сделать пытаешься? Использовать php функцию из javascript?
|
Цитата:
|
Через обращение к определенному php скрипту по ajax - можно, да. Напрямую - нельзя. php исполняется на сервере, не в браузере клиента, а на сервере, результат его выполнения - html-страница. Клиент обратился к серверу, php скрипт отработал, вывел html-страницу - все, до свидания.
|
Скажите что не так делаю
<script type="text/javascript"> $('#num').bind("keyup change", function(){ var num = $("#num").val(); $.post('ajax.php', { num: num }, function (data) { $("#system_msg").html(data); } ); }); </script> <div id="system_msg"></div> <input type="text" id="num" value=""> |
Цитата:
Ученые тоже как-то пытались скрестить свинью с человеком - нихера не вышло... :) <?=$var ?> <?php echo $var; ?> Эти записи эквивалентны, но первая работает не всегда Если нужно вызвать функцию, то echo не нужно <?php foo(); ?> Ну а если извращаться... <script> var total = 100; var total = "<?php action("+ total +"); ?>"; </script> Ну и естественно php должен выполнять код в этом файле - см. расширение |
Hapson,
"<?php action("+ total +"); ?>"; - такой вариант не срабатывает, делаю так: "<?=money("+ Total +");?>"; - функция работает, но не считывается переменная.. |
Подскажите как правильно сделать, чтобы при изменении текста отправлялся запрос..? Делаю так но ничего не происходит..
<script type="text/javascript"> $('#num').bind("keyup change", function(){ var num = $("#num").val(); $.post('ajax.php', { num: num }, function (data) { $("#system_msg").html(data); } ); }); </script> <div id="system_msg"></div> <input type="text" id="num" value=""> |
Полагаю что вы не правильно передаете данные.
Вместо { num: num } Надо { data: {num: num} } |
Цитата:
|
Блок со скриптом после HTML элементов поставь. И зачем вешать сразу на keyup и на change? Получается при каждом введенном символе будет отправляться 2 одинаковых запроса.
|
Цитата:
$(document).ready(function(){ $('input[name=num]').on("keyup paste cut IE9EventFix change", function (){ var Total = document.getElementById('num').value; $.ajax({ type: 'POST', url: 'ajax.php', data: "Total=" + Total, success: function(data) { $('#infomsg').html(data); } }); }); }); |
Цитата:
Делаю так .on("keyup paste cut IE9EventFix change"... Посмотрел отправляется один запрос. |
Цитата:
Вот для демонстрации: http://learn.javascript.ru/play/1cQHsb Показывает все срабатывания обработчиков. Не надо забывать, что change в некоторых браузерахсрабатывает при потере фокуса. |
Цитата:
Может посоветуете что нибудь оптимальное? |
Цитата:
|
Часовой пояс GMT +3, время: 13:46. |