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:48. |