Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2015, 13:22
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Как передать значение из JS в переменную PHP
Всем привет! Стоит задача, с которой пока справиться не смог. Есть:

document.getElementById('product-price').innerHTML = rezultatRadio + totalPrice;

мне нужно передать значение
'product-price'

из
document.getElementById('product-price').innerHTML

в php-переменную, типа
$product_price

Выводить на этой же странице результат получается вот так:
<output id="product-price"></output>

И нужно значение id='product-price' передать новой переменной $product_price функцией mail(), которая находится на этой же странице order.php... Заранее благодарен!

Последний раз редактировалось arhat78, 06.04.2015 в 13:33.
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2015, 13:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Опшен ваш является элементом списка, а список элементом формы. При отправке формы получайте, присваивайте, отправляйте почтой, какие проблемы?
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2015, 18:49
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение
Опшен ваш является элементом списка, а список элементом формы. При отправке формы получайте, присваивайте, отправляйте почтой, какие проблемы?
Ну а как можно присвоить значение JS переменной PHP???
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2015, 18:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

На сервере не будет никакой js-переменной. Если речь идет о форме, то в зависимости от метода ее передачи ее данные будут на сервере в массиве $_GET или $_POST, можно их получить и из массива $_REQUEST. А чтобы элемент формы передавался на сервер, у него должен быть атрибут name, который будет ключом в вышеуказанных массивах.
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2015, 19:06
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение
Если речь идет о форме, то в зависимости от метода ее передачи ее данные будут на сервере в массиве $_GET или $_POST, можно их получить и из массива $_REQUEST. А чтобы элемент формы передавался на сервер, у него должен быть атрибут name, который будет ключом в вышеуказанных массивах.

laimas, у меня и форма оформления заказа, и код отправки на почту находится на одной странице.


В письме общая сумма заказа отправлялась таким образом:
$tprice =  substr(htmlspecialchars(trim(number_format($product['price'] * $quantity ,2))), 0, 1000000); 
        

$message .= 'Общая сумма: ' . $tprice . '<br />';


Но после добавления функции выбора типа доставки появился этот код:
<input type="radio" name="nameRadio" value="300" > Наш курьер (Стоимость доставки 300 руб)
    <input type="radio" name="nameRadio" value="0">Самовывоз
    
	 <p class="total" align="center">Общая сумма заказа: <span class="product-price"><output id="product-price"></output> руб</span></p>


Вот как теперь $tprice поменять на id="product-price", вот в чём вопрос??????
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2015, 19:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

substr(htmlspecialchars(trim(number_format($produc t['price'] * $quantity ,2))), 0, 1000000); - вы можете объяснить зачем здесь htmlspecialchars, а trim после number_format, и весь этот бедлам еще и должен быть обработан substr?

Вот как теперь $tprice поменять на id="product-price", вот в чём вопрос??????

Поменять где, на сервере? Никак. Вставить видимо нужно $tprice в id="product-price"?

<output id="product-price"><?=$tprice ? $tprice : null?></output>
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2015, 19:25
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение

Поменять где, на сервере? Никак. Вставить видимо нужно $tprice в id="product-price"?

<output id="product-price"><?=$tprice ? $tprice : null?></output>
Ну а какой смысл в этой вставке???? Нужно как раз этой переменной $tprice присвоить значение, которое несёт в себе id="product-price", чтобы отправить общую сумму заказа учитывая стоимость доставки.
Ответить с цитированием
  #8 (permalink)  
Старый 06.04.2015, 19:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Тег output не является элементом формы, более того, он доступен только в современных браузерах. А не являясь элементом формы, он как ее значение не передается на сервер. Если вам нужно передать текст из этого тега, помещайте его в скрытое поле формы на клиенте. Но если этот тег содержит produc t['price'] * $quantity, то какой смысл его передавать?

А вот это substr(htmlspecialchars(trim(number_format($produc t['price'] * $quantity ,2))), 0, 1000000); - полнейшая чушь, выбрасывайте это.

$produc t['price'] - цену продукта должен знать сервер, передавать ее с клиента не стоит. Клиент должен сообщать серверу только количество выбранного.
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2015, 19:46
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

Сообщение от laimas Посмотреть сообщение

А вот это substr(htmlspecialchars(trim(number_format($produc t['price'] * $quantity ,2))), 0, 1000000); - полнейшая чушь, выбрасывайте это.

$produc t['price'] - цену продукта должен знать сервер, передавать ее с клиента не стоит. Клиент должен сообщать серверу только количество выбранного.
substr(number_format($produc t['price'] * $quantity ,2), 0, 10);

Существует сессия: $_SESSION['total_price'], так я выводил "общую сумму заказа" до появления выбора типа доставки с JS.

$total_price = $_SESSION['total_price'];

$total_price я заносил в БД "общую сумму заказа"

Теперь с помощью JS общая сумма заказа заносится в id="product-price"
<script>
  window.onload = function(){ totalPrice = "<?=$_SESSION['total_price']?>"; }
  
window.onclick = function onclickRadio() {
  var nameRadio = document.getElementsByName('nameRadio');
  for (var i = 0; i < nameRadio.length; i++) {
    if (nameRadio[i].type === 'radio' && nameRadio[i].checked) {
        rezultatRadio = nameRadio[i].value;       
        
    }
  }
  document.getElementById('rezultatRadio').innerHTML =  rezultatRadio;
  document.getElementById('product-price').innerHTML =  new Number (+rezultatRadio) + new Number (+totalPrice);
  
 
}
</script>

И вот как теперь значение данного id можно передать переменной PHP, чтобы можно было это дальше обрабатывать в PHP?
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2015, 19:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<script>
window.onload = function(){ totalPrice = "<?=$_SESSION['total_price']?>"; }
var totalPrice = "<?=$_SESSION['total_price']?>";

Хранение данных в сессии никак не оправдывает substr(number_format($produc t['price'] * $quantity ,2), 0, 10), это глупость, ибо в контексте типа данных с которыми вы работаете, этого совсем не требуется, тем более htmlspecialchars и trim.

Об остальном тоже хорошо подумайте. Вы изначально поступаете непотребным способом, и ваш код грешит тем, что может огрести кучу мусора, и скушать его.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
Передать значение из html в js Mateus jQuery 3 24.12.2012 18:58
Как передать значение в php Mateus jQuery 11 10.12.2012 18:23
Как передавать параметры из php скрипта в js imissyouso Общие вопросы Javascript 3 01.08.2012 18:24
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19