Как вставить значение "safe_key" из поля типа select, Webform. Токен %value[метка_поля] выдает содержание "Some readable option"

Аватар пользователя Motorvideo Motorvideo 29 марта 2012 в 14:03

Здравствуйте, коллеги.
Прошу помочь советом.
Как вставить значение "safe_key" из поля типа select, Webform.
Токен %value[метка_поля] выдает содержание "Some readable option"

У меня есть поле select, которое выглядит так:
с1|Первый
с2|Второй
с3|Третий

Формирую ссылку адрес файла c1.pdf в письме пользователю, отправляемому после заполнения формы.
пишу sites/fefault/files/%value[метка_поля].pdf
а мне выдает sites/fefault/files/Первый.pdf

Как вставить значение "с1" ?
Подскажите пожалуйста.

Комментарии

Аватар пользователя Деонис Деонис 3 ноября 2014 в 19:02

А-ААААА!!!! 2 дня я искал ответ!!!! И нашёл!!! ) Всё уже сделано до нас ))

http://drupal.stackexchange.com/questions/66047/use-safe-key-in-webform-...
https://www.drupal.org/node/1340010
https://drupal.org/files/webform-1340010-19.patch

НАДО ПРОПАТЧИВАТЬ МОДУЛЬ "webform.module" чтобы в списке передавалось значение safe_key а не его описание !!!!
(после патча, вместо %value[ключ] пишем %safe_key[ключ])

(я пропатчил вручную добавив десяток строк начинающихся с "+" в указанные места файла..)

Аватар пользователя Antoniy Antoniy 18 ноября 2012 в 21:27

Та же проблема. Сделал webform калькулятор на ajax, а как передать результат на email, не знаю. Да что там результат, хотя бы value option передать.

Аватар пользователя Antoniy Antoniy 31 июля 2014 в 2:45

Вот такой код передает php-файлу, который делает вычисления, значение safe_key при выборе пользователем вариантов списка select, а потом вводит результат обратно:

<div id="result"></div>
<script>  
$("select").change(function () {
        var str = "";
        $("select option:selected").each(function () {
                $.ajax({  
                        type: "POST",  
                        url: '/sites/all/themes/mytheme/php/results.php',  
                        data: 'tarif='+$('#edit-submitted-tarif').val() + '&inst='+$('#edit-submitted-inst').val() + '&crcr='+$('#edit-submitted-crcr').val(),  
                        success: function(html){  
                                $('#result').html(html);  
                        }  
                });  
        });
        $("#results").text(str);
        })
        .change();
</script>

Вот код php-файла, который делает вычисления:

<?php
$a = ($_REQUEST['tarif']);
$b = ($_REQUEST['usb']);
$c = ($_REQUEST['crcr']);
$results='ИТОГО: ' . ($a + $b + $c);
print $results;
?>

Но, если напрямую ставить в полях (например, в hidden) <?php print ($_REQUEST['tarif']); ?> или даже <?php print ($_REQUEST['submitted[tarif]']); ?> то ноль.

*Drupal 6

Аватар пользователя dashiwa dashiwa 31 июля 2014 в 3:37

Вам нужно использовать встроенные функции для передачи значений форм и для обработки ajax.
Иначе будете бороться с конфликтами.
Лень писать..Думаю кто-то поможет Smile