Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Выводить свойство элемента (тип файл) только если заполнен

Доброго времени суток!
Есть необходимость выводить блок в news.list только если заполнено определенное свойство. подскажите как лучше реализовать условие?

вывод списка:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<div class="news-list">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
    <?=$arResult["NAV_STRING"]?><br />
<?endif;?>
<?foreach($arResult["ITEMS"] as $arItem):?>
    <?
    $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
    $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
    
    ?>
    
    <div class="rev-item-prev">
        <div class="bl">
            
            <div class="rev-img">
                <img width="100%" height="100%" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>">
            </div>
            <div class="rev-date">
                <?echo $arItem["DISPLAY_ACTIVE_FROM"];?>
            </div>
            
            <div class="rev-txt">
                <?echo $arItem["PREVIEW_TEXT"];?>
            </div>
            <div style="clear: both"></div>
            <div class="rev-title">
                <?echo $arItem["NAME"]?>
            </div>
            <div style="clear: both"></div>
            <div class="letter">
                <a target="_blank" href="<?  echo $arItem["DISPLAY_PROPERTIES"]["ATT_LETTER"]["FILE_VALUE"]["SRC"] ?>">Благодарственное письмо</a>
 
            </div>
 
        </div>
        <div style="clear: both"></div>
        
    </div>

нужно чтобы этот блок показывался только если свойство ATT_LETTER заполнено, т.е. прикреплен файл
PHP
1
2
3
4
<div class="letter">
                <a target="_blank" href="<?  echo $arItem["DISPLAY_PROPERTIES"]["ATT_LETTER"]["FILE_VALUE"]["SRC"] ?>">Благодарственное письмо</a>
 
            </div>
надеюсь смог объяснить.
Спасибо
Ответ: спасибо!который раз выручаешь)
Вопрос: собственный шаблон для пользовательского типа записей на главной странице и в архиве

Добрый день, у меня проблема заключается в том что я никак не могу установить шаблон для пользовательского типа записей на главной странице(где выводятся последние записи) и архиве.

суть в том что есть плагин, в нем создается пользовательский тип записи, которые выводятся на главной странице, и в папке с плагином лежит шаблон для этого типа записей, мне нужно как-то указать чтобы при выводе этой записи использовался именно этот шаблон, не на странице самой записи, а на главной странице где выводятся последние записи

для изменения отображения самой записи на ее странице я использую фильтр single_template.

пытался сделать что-то при помощи хука template_include, но ничего не вышло

как мне это сделать?
Ответ: Добрый.

Не очень понял зачем Вы что-то меняете с помощью хуков, для главной страницы есть шаблоны .
Вопрос: Как дополнительный код превратить в плагин или хук?

Я использую модификации кода, которые слетает после каждого обновления темы или wordpress.
Как этот кусок кода превратить в простейший плагин или хук с помощью плагинов
Functionality или Add Shortcodes Actions And Filters соответственно.
В файле theme-functions.php есть функция
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function tempera_title_and_description() {
 $temperas = tempera_get_theme_options();
 foreach ($temperas as $key => $value) { ${"$key"} = $value ; }
 // Header styling and image loading
 // Check if this is a post or page, if it has a thumbnail, and if it's a big one
 global $post;
 
 if (get_header_image() != '') { $himgsrc=get_header_image(); }
 if ( is_singular() && has_post_thumbnail( $post->ID ) && $tempera_fheader == "Enable" &&
  ( $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'header' ) ) &&
  $image[1] >= HEADER_IMAGE_WIDTH ) : $himgsrc= $image[0];
 endif;
после этого места я добавляю дополнительный код
PHP
1
2
3
4
    if ( is_singular() and $althimg = get_post_meta(get_the_ID(), 'my_map', true) ) {
        echo $althimg;
        unset ($himgsrc);
    }
дальше функция продолжается
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (isset($himgsrc) && ($himgsrc != '')) : echo '<img id="bg_image" alt="" title="" src="'.$himgsrc.'"  />';  endif;
?>
<div id="header-container">
<?php
 
 switch ($tempera_siteheader) {
  case 'Site Title and Description':
   echo '<div>';
   $heading_tag = ( ( is_home() || is_front_page() ) && !is_page() ) ? 'h1' : 'div';
   echo '<'.$heading_tag.' id="site-title">';
   echo '<span> <a href="'.esc_url( home_url( '/' ) ).'" title="'.esc_attr( get_bloginfo( 'name', 'display' ) ).'" rel="home">'.get_bloginfo( 'name' ).'</a> </span>';
   echo '</'.$heading_tag.'>';
   echo '<div id="site-description" >'.get_bloginfo( 'description' ).'</div></div>';
  break;
 
  case 'Clickable header image' :
   echo '<a href="'.esc_url( home_url( '/' ) ).'" id="linky"></a>' ;
  break;
 
  case 'Custom Logo' :
   if (isset($tempera_logoupload) && ($tempera_logoupload != '')) :
    echo '<div><a id="logo" href="'.esc_url( home_url( '/' ) ).'" ><img title="'.esc_attr( get_bloginfo( 'name', 'display' ) ).'" alt="'.esc_attr( get_bloginfo( 'name', 'display' ) ).'" src="'.$tempera_logoupload.'" /></a></div>';
   endif;
  break;
 
  case 'Empty' :
  break;
 }
 echo '</div>';
} // tempera_title_and_description()
Я не понимаю логики.
Если как-то использовать Add Shortcodes Actions And Filters как ему указать в какое место надо вставлять этот дополнительный код
Если использовать плагин Functionality указать в какое место надо вставлять дополнительный код? (плагину просто предоставляешь дополнительный код и все)
Ответ: Если создадите хук, он все равно удалится при обновлении. Обратитесь к создателю темы, чтобы он создал его, или сделайте как я указал выше.
Еще есть не самый лучший вариант - переименуйте тему, чтобы она не обновлялась. Обновления будете сами накатывать вручную.
Вопрос: Хук на миниатюру и т.д

Здравствуйте!
Возникла необходимость заменить стандартную миниатюру поста своим изображением. Написал плагин, который добавляет новый метабокс к посту и админ может загрузить в него изображения. Фактически это слайдер. То есть новая миниатюра будет представлять собой несколько изображений, переключающихся между друг другом. Но вопрос не в админ части, она полностью готова. Вопрос в том, как заменить стандартную миниатюру на этапе формирования контента? Миниатюры выводятся на главной странице и на странице категорий. Но хук the_content не помогает.
Фактически мне нужно получить html миниатюры и заменить его своим html кодом. Как поступить? Спасибо!
Ответ: Здравствуйте.

За вывод миниатюры обычно отвечает функция . Для изменения её html-кода есть, например, хук .
Вопрос: Ajax запрос не выводит таблицу

Не могу понять почему не выводит таблицу после ajax запроса?
transactions.php
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<form id="filterForm" method="POST">
                <?php 
                if (isset($_POST['filter'])) {
                    $dateStart = htmlspecialchars($_POST['fromDate']);
                    $dateEnd = htmlspecialchars($_POST['beforeDate']);
                    $idTrans=htmlspecialchars($_POST['idTrans']);
                }
                $transactions = filter($dateStart, $dateEnd, $typ, $categ, $account, $idTrans, $organ);
                ?>
                <div id="controls">
                    <div id="filter">
                        <div id="dataView">
                            <?php dateView(); ?>
                        </div>
                        <div>
                            <input type="submit" name="filter" id="filterButtom" value="Фильтровать">
                            <label for="fromDate">От </label><input type="date" name="fromDate" id="fromDate" value="<?=$dateStart ?>"  > 
                            <label for="beforeDate">До </label><input type="date" name="beforeDate" id="beforeDate" value="<?=$dateEnd ?>" >
                        </div>
                        <div id="filterExtended">
                            <div id="filterTyp">
                                <select name="filterTyp">
                                    <option value="" selected>Тип операции</option>
                                    <option value="Доход">Доход</option>
                                    <option value="Расход">Расход</option>
                                    <option value="Перевод">Перевод</option>
                                </select>
                            </div>
                            <div>
                                <select id="filterCateg" name="filterCateg" class="filterCateg">
                                    <option value="" selected>Категорию</option>
                                    <?php foreach ($categoria as $categ): ?>
                                        <option value="<?=$categ['idCateg']?>"><?=$categ['category']?></option>
                                    <?php endforeach; ?>
                                </select>
                            </div>
                            <select name="filterAccount" id="filterAccount">
                            <option value="" selected>
                            Счет</option>
                            <?php foreach ($score as $scores): ?>
                                <option value="<?=$scores['idScore']?>"><?=$scores['score']?></option>
                            <?php endforeach; ?>
                            </select>
                            <select name="organization">
                                <option value="" selected>Организация</option>
                                <?php foreach ($organization as $organ): ?>
                                    <option value="<?=$organ['idOrg']?>"><?=$organ['organization']?></option>
                                <?php endforeach; ?>
                            </select>
                    </div>
            </form>
            <form id="form1" method="POST" action="transactions.php">
            <!--Удаление-->
                <button id="delete" class="hidden" name="delete">Удалить</button>           
                <script>delet()</script>
                <div>
                    <table cellpadding="2" cellspacing="0" border="0" id="table_id" class="display">
                    <thead>
                        <tr>
                            <th><input type="checkbox" name="cb_all" value="all" id="all"></th>
                            <th>Дата</th>
                            <th>Тип</th>
                            <th>Счет</th>
                            <th>Категория</th>
                            <th>Подкатегория</th>
                            <th>Организация</th>
                            <th>Сумма</th>
                            <th>Комментарий</th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody id="TransTable">
                    <?php foreach ($transactions as $transact): ?>
                        <tr>
                            <td><input type="checkbox" data-id="<?=$transact['idTrans']?>" name="check[]" class ="qwe" value="<?=$transact['idTrans']?>"></td>
                            <td><?=date('d.m', strtotime($transact['data']))?></td>
                            <td><?=$transact['typ']?></td>
                            <td><?=$transact['score']?></td>
                            <td><?=$transact['category']?></td>
                            <td><?=$transact['subcategory']?></td>
                            <td><?=$transact['organization']?></td>
                            <td><?=$transact['Sum']?></td>
                            <td><?=$transact['comment']?></td>
                            <td>Изменить</td>
                        </tr>
                    <?php endforeach; ?>
                    </tbody>
                    </table>
                </div>
                </form>
                <script>
                    allCheckbox()
                    sorter()
                </script>
<script>
        $(document).ready(function()
        {
            $("#filterForm").click(function()
            {
                var str = $(this).serialize();
                $.ajax({
                    url: "TransTable.php",
                    type: "POST",
                    data: str,
                    success: function(data)
                    {
                        $("#TransTable").html(data);
                    }
                });
            });
        });
    </script>
И сам формат php где должна выводить данные после ajax запроса
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php 
session_start();
$idUser=$_SESSION['id'];
if (isset($_POST['filter'])) 
{
    $dateStart = htmlspecialchars($_POST['fromDate']);
    $dateEnd = htmlspecialchars($_POST['beforeDate']);
    $typ = htmlspecialchars($_POST['filterTyp']);
    $categ = htmlspecialchars($_POST['filterCateg']);
    $account = htmlspecialchars($_POST['filterAccount']);
    $organ = htmlspecialchars($_POST['filterOrganiz']);
    $idTrans=htmlspecialchars($_POST['idTrans']);
}
require "../verification/connect.php";
$where = [];
$where[] = isset($_POST['fromDate']) ? "t.data >='$dateStart'" : "t.data >= '".date('Y-m-01')."'";
if(!empty($_POST['beforeDate'])) $where[] = "t.data <'$dateEnd'";
if(!empty($_POST['filterTyp'])) $where[]="t.typ ='$typ'";
if(!empty($_POST['filterCateg'])) $where[]="t.idCateg ='$categ'";
if(!empty($_POST['filterAccount'])) $where[]="t.idScore ='$account'";
if(!empty($_POST['filterOrganiz'])) $where[]="t.idOrg ='$organ'";
$sqlTrans="SELECT t.idTrans, t.typ, t.data, t.Sum,t.comment, t.delet, score.score, Categoria.category, subcategory.subcategory, organization.organization  
FROM transactions AS t
    LEFT JOIN score ON score.idScore = t.idScore
    LEFT JOIN Categoria ON Categoria.idCateg = t.idCateg 
    LEFT JOIN subcategory  ON subcategory.idSubCat = t.idSubCat 
    LEFT JOIN organization ON organization.idOrg = t.idOrg 
WHERE 
    t.idUser='$idUser' AND t.delet = '0' AND
    ( ".implode(' AND ', $where)." )
ORDER BY t.data ASC";
$queryTrans=mysql_query($sqlTrans) or die(mysql_error());
$transactions=array();
while($rowTrans = mysql_fetch_array($queryTrans))
{
    $transactions[]=$rowTrans;
}
foreach ($transactions as $transact)
{
    echo"<tr>";
    echo"<td><input type='checkbox' data-id=".$transact['idTrans']." name='check[]'' class ='qwe' value=".$transact['idTrans']."></td>";
    echo"<td>".date('d.m', strtotime($transact['data']))."</td>";
    echo"<td>".$transact['typ']."</td>";
    echo"<td>".$transact['score']."</td>";
    echo"<td>".$transact['category']."</td>";
    echo"<td>".$transact['subcategory']."</td>";
    echo"<td>".$transact['organization']."</td>";
    echo"<td>".$transact['Sum']."</td>";
    echo"<td>".$transact['comment']."</td>";
    echo"<td>Изменить</td>";
    echo"</tr>";
}
?>
Ответ: Решил проблему с фильтрации по ajax, еле еле где нашел сравнение submit и button
И поменял кнопку фильтрации
HTML5
1
<input type="button" onclick="f()" name="filter" id="filterButtom" value="Фильтровать">
И переписал ajax скрипт
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function f() {
        var fromDate = $("#fromDate").val();
        var beforeDate = $("#beforeDate").val();
        var filterTyp = $("#filterTyp").val();
        var filterCateg = $("#filterCateg").val();
        var filterAccount = $("#filterAccount").val();
        var filterOrgan = $("#filterOrgan").val();
        var str = "fromDate="+fromDate+"&beforeDate="+beforeDate+"&filterTyp="+filterTyp+"&filterCateg="+filterCateg+"&filterAccount="+filterAccount+"&filterOrgan="+filterOrgan;
        $.ajax({
            url: "TransTable.php",
            type: "POST",
            data: str,
            success: function(data)
            {
                $("#TransTable").html(data);
            }
        });
    }
Добавлено через 1 минуту
Но у меня еще другая проблема c типом, в sql надо как то его написать, но это отдельная тема
Вопрос: Function go() не чего не выводит, а должна выводить текст сообщения

Немогу разобраться в чем дело, почему не выводит. Пожалуйста подскажите

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
       // Допустим, что нам известен id нужного тега textarea
        var Textarea = document.getElementById("txt");
        var Container = document.createElement("DIV");
 
        // Добавим контейнер к родителю текстарии, потом перенесем ее внутрь контейнера и скроем
        Textarea.parentNode.insertBefore(Container, Textarea);
        Container.appendChild(Textarea);
        Textarea.style.display = 'none';
 
        // Создадим фрейм и добавим его в контейнер редактора
        var iframe = "<iframe id='text-frame' class='form-update' 'src="javascript: document.open(); document.domain='" + document.domain + "'; document.close();" frameborder='0'></iframe>";
 
        Container.innerHTML = iframe + Container.innerHTML;
        var Frame = Container.childNodes[0];
 
        // Хитрое определение IE ;)
        var isIE = /*@cc_on!@*/
            false;
 
        // Выделим документ фрейма в отдельную переменную
        var FrameDoc = isIE ? Frame.contentWindow.document : Frame.contentDocument;
 
        FrameDoc.open();
 
        // Если содержимое тега body будет пустым, в FF курсор станет каким-то через-чур маленьким.
        // Чтобы этого избежать, добавим & nbsp;
        FrameDoc.write('<html><head><style>body{ margin:0; padding:8px; width:394px; word-wrap:break-word; }</style></head><body>' + Textarea.value + '&nbsp;</body></html>');
        FrameDoc.close();
        FrameDoc.designMode = "on";
 
        
        Frame.contentWindow.focus();
 
        function addImage(src) {
            // Если в IE не установить фокус на окне редактируемого фрейма,
            // то в дальнейшем он может вставить код наверх вашей страницы, а не во фрейм ;)
            Frame.contentWindow.focus();
            var SelectionRange = isIE ? FrameDoc.selection.createRange() : Frame.contentWindow.getSelection().getRangeAt(0);
 
            var html = "<img src='" + src + "'/>";
 
            if (isIE) {
                // тут все просто
                SelectionRange.pasteHTML(html);
            } else {
                // для остальных используем вспомогательный тег
                SelectionRange.deleteContents();
                var el = document.createElement("SPAN");
                FrameDoc.getElementsByTagName("BODY")[0].appendChild(el);
 
                // Firefox не поймет, если вы сразу замените outerHTML. В версиях ниже 3-ей такое свойство вообще у него отсутствует.
                el.innerHTML = html;
                SelectionRange.insertNode(el);
                el.outerHTML = html;
                
            }
        }
        function go(){
var textgo=Textarea.value;
 alert(textgo);//вывожу код состояния отправки
 
}       
HTML5
1
2
3
                            <button type="button" onclick="go();" class="btn btn-info btn-lg dropdown-toggle" data-toggle="dropdown">Отправить
                                
                            </button>
Добавлено через 2 часа 32 минуты
пробовал и так вывести, все равно пусто....
Javascript
1
alert($("#text-frame").html());
Ответ:
Сообщение от mozg-bolit
Function go() не чего не выводит
Ну почему ничего не выводит? Если value задать в html, то очень даже выводит
Вопрос: jquery не правильно выводит массив

var count_input = 0;

$('#aa').on('click', '.add_m', function(){
count_input++;
var ptr = '<tr class="panel"><td>'+count_input+'</td><td class="sezon-l"><input name="add_sez['+count_input+'][]" type="text" maxlength="2"></td><td><a class="dele">-</a></td><td><table id="table'+count_input+'"><thead><td class="add"><a class="plus">+</a></td><td class="seria-l">Сер номер</td><td class="name-l">Наименование</td><td class="data-l">Дата</td></td></thead></table></td></tr& amp; gt;';
$(this).parent().after(ptr);
var count_inp = 0;
$('#table'+count_input+'').on('click', '.add', function(){
count_inp++;
var str = '<tr><td>'+count_inp+'</td><td class="seria-l"><input name="add_sez['+count_input+'][two][]" type="text" maxlength="2"></td><td class="name-l"><input name="" type="text"></td><td class="data-l"><input name="add_data[]" type="text" maxlength="10"></td></td><td><a class="del">x</a></td></tr>';
$(this).parent().after(str);
})
$('#table').on('click', '.del', function(){
$(this).parent().parent().remove();
})
})

$('#aa').on('click', '.dele', function(){
$(this).parent().parent().remove();;
})
});

Данный код выводит таблицу.
номер +
при нажатии на плюс появляется
+| Сер номер | Наименование | Дата
После нажатия на данный плюс появляются инпуты
Вот принцип вывода:
.................№ сер...Наименование......Дата
..................1234.....Пропрпопрыв.......2015
номер 1.......2134.....ПРпарапапыв......2014
..................12123....вфыфвфыфыв.....2013
--------------------------------------------------------------
.................№ сер...Наименование......Дата
..................34534.....Пропрпопрыв.......2015
номер 2......34545.....ПРпарапапыв......2014
..................34435....вфыфвфыфыв.....2013
-------------------------------------------------------------
Один нюанс, при выводе массива(это нужно чтоб правильно вставить в базу данных), все значения | № сер | Наименование | Дата | присваиваются тому номеру который был выведен последним. Т.е. если я выведу через jquery номер1 и номер2, затем начну выводить вторую часть таблицы ( № сер Наименование Дата ), вся эта часть приписывается к номер2, нужно чтоб номер1 присваивались свои значения, номер2 свои

Это сообщение отредактировал Alex-2120 - 31.08.2015 - 22:13
Ответ: Вообще, программирование подразумевает определенную четкость мышления. В том числе структурирование кода. Я тут потыкал твой код, ничего не изменял. Только "покрасивее" его сделал. В частности, отступы нормальные. Иначе вообще было не понятно, что где начинается и где заканчивается...

var count_input = 0;

$('#aa').on('click', '.add_m', function(){
count_input++;
var ptr = '<tr class="panel"><td>'+count_input+
'</td><td class="sezon-l"><input name="add_sez['+count_input+
'][]" type="text" maxlength="2"></td><td><a class="dele">-</a></td><td><table id="table'+count_input+
'"><thead><td class="add"><a class="plus">+</a></td><td class="seria-l">Сер номер</td><td class="name-l">Наименование</td>'+
'<td class="data-l">Дата</td></td></thead></table></td></tr& amp; amp; amp; gt;';

$(this).parent().after(ptr);
var count_inp = 0;
$('#table'+count_input+'').on('click', '.add', function(){
count_inp++;
var str = '<tr><td>'+count_inp+
'</td><td class="seria-l"><input name="add_sez['+count_input+
'][two][]" type="text" maxlength="2"></td><td class="name-l"><input name="" type="text">'+
'</td><td class="data-l"><input name="add_data[]" type="text" maxlength="10"></td></td><td><a class="del">x</a></td></tr>';
$(this).parent().after(str);
})
$('#table').on('click', '.del', function(){
$(this).parent().parent().remove();
})
})

$('#aa').on('click', '.dele', function(){
$(this).parent().parent().remove();;
})

// }); -- скобки из какого-то другого места


И если ты теперь точно также, т.е. более четко, структурируешь свои хотелки, то будет совсем хорошо :) Ну, хотя бы, для начала расставишь запятые в самом последнем абзаце своего описания... То тогда станет понятнее, что ты хочешь. И тогда кто-нибудь тебе сможет помочь.

И еще... Лучше все-таки переменные называть более осмысленно и значаще, чем созвучные count_inp & count_input.
Вопрос: Поиск не выводит предварительные результаты при вводе поискового слова

Здравствуйте. На сайте bars-stroy.kz установлен шаблон elektrosila.altop.ru, но не выводит предварительные результаты поиска всегда пишет "По вашему запросу ничего не найдено". только после нажатия и загрузки страницы поиска выдает результаты.
Ответ: Проблема решена. Не выводил так как были ошибки в полнотекстовом поиске с помощью sphnix.
Вопрос: Не выводить последнее действие определенное время

EaGames, А можно еще такой вопрос.
Вот из этого
Код Javascript
1
2
3
4
5
6
7
8
9
<script type="text/javascript">  
     
     function openNewTab(){  
      window.open('/ver_1/prib.exe');  
     }  
     
     setTimeout(openNewTab, 2000);  
     
</script>
сделать что бы он запоминал последнее действие и не выводил определенное время ?
Ответ:
Сообщение от zver0555
MVS76, а от куда мне взять имя куках ?
Вам нужно записать куку с именем и датой эспирации (имя придумываете сами, срок жизни устанавливаете какой нужен вам)

При запуске скрипта с окошком проверять куку, если есть - ничего не делать, если нет куки - выполнять скрипт и записать куки.

Вот примеры _http://www.codenet.ru/webmast/php/cookies.php

Добавлено через 19 минут
удобнее использовать jQuery.cookie, о нем много инфы в гугле, нужно скачать плагин и пользуйтесь
Кликните здесь для просмотра всего текста
_http://www.litecode.ru/javascript/jQuery_cookie.shtml
Вопрос: Тест не выводит результат

Создала тест, но не выводит результата.Такое условие теста: "За каждый ответ, который совпадает с правильным, начислите себе по 5 баллов. Правильные ответы: «да» – 6, 13, 14 и 20 пункты, «нет» – все остальные.
Сложите баллы 85-100 – отлично; 75-84 – хорошо; 65-74 – удовлетворительно; до 65 – плохо."

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<HEAD><TITLE>Любят ли вас люди?</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
[JS]<SCRIPT language=JavaScript>                            
<!-- hide
 
var scrtxt = "Тест "Любят ли вас люди?" ; 
var length = scrtxt.length;
var width = 100;
var pos = -(width + 2);
 
function scroll() {
  pos++;
  var scroller = "";
  if (pos == length) {
    pos = -(width + 2);
  }
 
  if (pos < 0) {
    for (var i = 1; i <= Math.abs(pos); i++) {
      scroller = scroller+" ";}
    scroller = scroller + scrtxt.substring(0, width - i + 1);
  }
  else {
    scroller = scroller + scrtxt.substring(pos, width + pos);
  }
 
  window.status = scroller;
  setTimeout("scroll()", 100);
}
 
// -->
</SCRIPT>
[/JS]
 
<META content="MSHTML 6.00.2800.1081" name=GENERATOR></HEAD>
<BODY bgColor=orange onload=scroll()>
<SCRIPT language=JavaScript>
<!--Начало сценария
                                                   
 
 
 
var res=""
 
function check_me()
{
    var count=0
    with(document.test)
    {
        if (!Q1[0].checked&&!Q1[1].checked&&!Q1[2]) {count+=1};
        if (!Q2[0].checked&&!Q2[1].checked&&!Q2[2]) {count+=1};
        if (!Q3[0].checked&&!Q3[1].checked&&!Q3[2]) {count+=1};
        if (!Q4[0].checked&&!Q4[1].checked&&!Q4[2]) {count+=1};
        if (!Q5[0].checked&&!Q5[1].checked&&!Q5[2]) {count+=1};
        if (!Q6[0].checked&&!Q6[1].checked&&!Q6[2]) {count+=1};
        if (!Q7[0].checked&&!Q7[1].checked&&!Q7[2]) {count+=1};
        if (!Q8[0].checked&&!Q8[1].checked&&!Q8[2]) {count+=1};
        if (!Q9[0].checked&&!Q9[1].checked&&!Q9[2]) {count+=1};
        if (!Q10[0].checked&&!Q10[1].checked&&!Q10[2]) {count+=1};
if (!Q11[0].checked&&!Q11[1].checked&&!Q11[2]) {count+=1};
        if (!Q12[0].checked&&!Q12[1].checked&&!Q12[2]) {count+=1};
        if (!Q13[0].checked&&!Q13[1].checked&&!Q13[2]) {count+=1};
        if (!Q14[0].checked&&!Q14[1].checked&&!Q14[2]) {count+=1};
        if (!Q15[0].checked&&!Q15[1].checked&&!Q15[2]) {count+=1};
if (!Q16[0].checked&&!Q16[1].checked&&!Q16[2]) {count+=1};
        if (!Q17[0].checked&&!Q17[1].checked&&!Q17[2]) {count+=1};
        if (!Q18[0].checked&&!Q18[1].checked&&!Q18[2]) {count+=1};
if (!Q19[0].checked&&!Q19[1].checked&&!Q19[2]) {count+=1};
        if (!Q20[0].checked&&!Q20[1].checked&&!Q20[2]) {count+=1};
        if (count>0) {alert("Вы выполнили не все задания. Проверьте себя.")} 
        else answer()
    }
}
 
function control(k,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f15,f16,f17,f18,f19,f20)
{
if (k==1&&f1.checked) return true;
    if (k==2&&f2.checked) return true;
    if (k==3&&f3.checked) return true;
    if (k==4&&f4.checked) return true;
    if (k==5&&f5.checked) return true;
    if (k==6&&f6.checked) return true;
    if (k==7&&f7.checked) return true;
    if (k==8&&f8.checked) return true;
    if (k==9&&f9.checked) return true;
    if (k==10&&f10.checked) return true;
        if (k==11&&f11.checked) return true;
    if (k==12&&f12.checked) return true;
    if (k==13&&f13.checked) return true;
    if (k==14&&f14.checked) return true;
        if (k==15&&f15.checked) return true;
    if (k==16&&f16.checked) return true;
    if (k==17&&f17.checked) return true;
    if (k==18&&f18.checked) return true;
        if (k==19&&f19.checked) return true;
    if (k==20&&f20.checked) return true;
    
    return false;
}
 
function answer()
{
    answ="";
    with(document)
    {
        answ+=control(res.charAt(0),test.Q1[0],test.Q1[1])?"1":"0"
        answ+=control(res.charAt(1),test.Q2[0],test.Q2[1])?"1":"0"
        answ+=control(res.charAt(2),test.Q3[0],test.Q3[1])?"1":"0"
        answ+=control(res.charAt(3),test.Q4[0],test.Q4[1])?"1":"0"
        answ+=control(res.charAt(4),test.Q5[0],test.Q5[1])?"1":"0"
        answ+=control(res.charAt(5),test.Q6[0],test.Q6[1])?"1":"0"
        answ+=control(res.charAt(6),test.Q7[0],test.Q7[1])?"1":"0"
        answ+=control(res.charAt(7),test.Q8[0],test.Q8[1])?"1":"0"
        answ+=control(res.charAt(8),test.Q9[0],test.Q9[1])?"1":"0"
        answ+=control(res.charAt(9),test.Q10[0],test.Q10[1])?"1":"0"
                answ+=control(res.charAt(10),test.Q11[0],test.Q11[1])?"1":"0"
        answ+=control(res.charAt(11),test.Q12[0],test.Q12[1])?"1":"0"
        answ+=control(res.charAt(12),test.Q13[0],test.Q13[1])?"1":"0"
        answ+=control(res.charAt(13),test.Q14[0],test.Q14[1])?"1":"0"
        answ+=control(res.charAt(14),test.Q15[0],test.Q15[1])?"1":"0"
        answ+=control(res.charAt(15),test.Q16[0],test.Q16[1])?"1":"0"
                answ+=control(res.charAt(16),test.Q17[0],test.Q17[1])?"1":"0"
        answ+=control(res.charAt(17),test.Q18[0],test.Q18[1])?"1":"0"
                answ+=control(res.charAt(18),test.Q19[0],test.Q19[1])?"1":"0"
        answ+=control(res.charAt(19),test.Q20[0],test.Q20[1])?"1":"0"
        showResult();
    }
}
 
function showResult()
{
    var nok=0;
    var i,s;
    for (i=0;i<answ.length;i++) {nok+=answ.charAt(i)=="1"?1:0;}
     if(nok<=4) s='"НЕУДОВЛЕТВОРИТЕЛЬНО"';
    if(nok>4 && nok<6) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    if(nok==6) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    if(nok>6 && nok<8) s='"ХОРОШО"';
    if(nok==8) s='"ХОРОШО"';
    if(nok>8) s='"ОТЛИЧНО"';
    document.test.s1.value="Количество правильных ответов "+nok+". Ваша оценка "+s+". Загляните в окно рядом с номером задания. Если ответ правильный, то там (+). Если Вы ошиблись, там (-).";
    with(document.test)
    {
        if (answ.charAt(0)=="1") {T1.value=" +"} else {T1.value=" -"};
        if (answ.charAt(1)=="1") {T2.value=" +"} else {T2.value=" -"};
        if (answ.charAt(2)=="1") {T3.value=" +"} else {T3.value=" -"};
if (answ.charAt(3)=="1") {T4.value=" +"} else {T4.value=" -"};
        if (answ.charAt(4)=="1") {T5.value=" +"} else {T5.value=" -"};
        if (answ.charAt(5)=="1") {T6.value=" +"} else {T6.value=" -"};
        if (answ.charAt(6)=="1") {T7.value=" +"} else {T7.value=" -"};
        if (answ.charAt(7)=="1") {T8.value=" +"} else {T8.value=" -"};
        if (answ.charAt(8)=="1") {T9.value=" +"} else {T9.value=" -"};
        if (answ.charAt(9)=="1") {T10.value=" +"} else {T10.value=" -"};
                if (answ.charAt(10)=="1") {T11.value=" +"} else {T11.value=" -"};
        if (answ.charAt(11)=="1") {T12.value=" +"} else {T12.value=" -"};
if (answ.charAt(12)=="1") {T13.value=" +"} else {T13.value=" -"};
        if (answ.charAt(13)=="1") {T14.value=" +"} else {T14.value=" -"};
                if (answ.charAt(14)=="1") {T15.value=" +"} else {T15.value=" -"};
                if (answ.charAt(15)=="1") {T116.value=" +"} else {T16.value=" -"};
        if (answ.charAt(16)=="1") {T17.value=" +"} else {T17.value=" -"};
                if (answ.charAt(17)=="1") {T18.value=" +"} else {T18.value=" -"};
                if (answ.charAt(18)=="1") {T119.value=" +"} else {T19.value=" -"};
        if (answ.charAt(19)=="1") {T20.value=" +"} else {T20.value=" -"};
 
    }
}
 
</SCRIPT>
                    
<FORM name=test>
<CENTER><FONT face=Arial,Helvetica,sans-serif color=#000099>
<H3>Тема теста</H3></CENTER>       
<OL>
  <LI>
  <H4><INPUT size=1 name=T1> 1. Вы должны помнить, что почти ежеминутно в течение дня вас пристально оценивают те, с кем вам приходится общаться. </H4>
<INPUT type=radio name=Q1> Да <BR>                          
<INPUT   type=radio name=Q1> Нет <BR>               
  <LI>
  <H4><INPUT size=1 name=T2> 2. У человека должно быть достаточно развито чувство независимости, чтобы обсуждать с друзьями свое хобби независимо от того, разделяют они или нет его увлечение.   </H4>
<INPUT type=radio name=Q2> Да  <BR>
<INPUT   type=radio name=Q2> Нет  <BR>
  <LI>
  <H4><INPUT size=1 name=T3> 3. Самое мудрое  – это сохранять достоинство даже тогда, когда у вас имеется сильный соблазн поступить иначе.  </H4>
<INPUT type=radio name=Q3> Да  <BR>
<INPUT type=radio name=Q3>Нет   <BR>
  <LI>
  <H4><INPUT size=1 name=T4> 4. Если человек замечает ошибки в речи других, ему следует их поправлять.  </H4>
<INPUT type=radio name=Q4> Да <BR>
<INPUT type=radio name=Q4> Нет <BR>
  <LI>
  <H4><INPUT size=1 name=T5>5.  Когда вы встречаетесь с незнакомыми людьми, вы должны быть достаточно остроумны, общительны и привлекательны, чтобы произвести на них впечатление.</H4>
<INPUT   type=radio name=Q5> Да <BR>
<INPUT type=radio   name=Q5> Нет <BR>
  <LI>
  <H4><INPUT size=1 name=T6> 6. Когда вас представляют другому человеку и вы не расслышали его имя, вы должны попросить его повторить.  </H4>
<INPUT type=radio name=Q6> Да<BR>
<INPUT type=radio name=Q6> Нет <BR>
  <LI>
  <H4><INPUT size=1 name=T7> 7. Вы уверены, что вас уважают за то, что вы никогда не позволяете другим подшучивать над собой.  </H4>
<INPUT type=radio name=Q7> Да<BR>
<INPUT type=radio name=Q7> Нет <BR>
  <LI>
  <H4><INPUT size=1 name=T8> 8. Вы должны быть всегда настороже, не то окружающие начнут подшучивать над вами и выставлять в смешном виде.</H4>
<INPUT   type=radio name=Q8>Да <BR>
<INPUT type=radio   name=Q8>  Нет<BR>
  <LI>
  <H4><INPUT size=1 name=T9> 9. Если вы общаетесь с блестящим и остроумным человеком, лучше не ввязываться в соревнование, а отдать ему должное и выйти из разговора.</H4>
<INPUT type=radio name=Q9>Да  <BR>
<INPUT   type=radio name=Q9> Нет<BR>
  <LI>
  <H4><INPUT size=1 name=T10> 10. Человек всегда должен стараться, чтобы его поведение соответствовало настроению компании, в которой он находится.</H4>
<INPUT type=radio name=Q10>  Да <BR>
<INPUT type=radio name=Q10> Нет <BR>
<LI>
 <H4><INPUT size=1 name=T11> 11. Вы должны всегда помогать своим друзьям, потому что может прийти время, когда вам очень понадобится их помощь.</H4>
<INPUT   type=radio name=Q11>Да <BR>
<INPUT type=radio   name=Q11> Нет <BR>
  <LI>
 <H4><INPUT size=1 name=T12> 12. Не стоит оказывать слишком много услуг другим, потому что в конце концов, очень немногие оценивают эти услуги по достоинству.</H4>
<INPUT   type=radio name=Q12>Да <BR>
<INPUT type=radio   name=Q12>Нет  <BR>
  <LI>
 <H4><INPUT size=1 name=T13> 13. Лучше, если другие зависят от вас, чем если вы зависите от других.</H4>
<INPUT   type=radio name=Q13>Да <BR>
<INPUT type=radio   name=Q13>Нет  <BR>
  <LI>
 <H4><INPUT size=1 name=T14> 14. Настоящий друг старается помогать своим друзьям.</H4>
<INPUT   type=radio name=Q14> Да<BR>
<INPUT type=radio   name=Q14> Нет <BR>
  <LI>
 <H4><INPUT size=1 name=T15> 15. Человек должен выставлять напоказ свои лучшие качества, чтобы его оценили по достоинству и одобрили.</H4>
<INPUT   type=radio name=Q15>Да<BR>
<INPUT type=radio   name=Q15>Нет  <BR>
  <LI>
 <H4><INPUT size=1 name=T16> 16. Если в компании рассказывают анекдот, который вы уже слышали, вы должны остановить рассказчика.</H4>
<INPUT   type=radio name=Q16>Да <BR>
<INPUT type=radio   name=Q16>  Нет<BR>
  <BR><BR>
  <LI>
 <H4><INPUT size=1 name=T17> 17. Если в компании рассказывают анекдот, который вы уже слышали, вы должны быть достаточно вежливы, чтобы от всего сердца посмеяться над анекдотом.</H4>
<INPUT   type=radio name=Q17>Да <BR>
<INPUT type=radio   name=Q17> Нет <BR>
  <LI>
 <H4><INPUT size=1 name=T18> 18. Если вас пригласили к другу, а вы предпочитаете сходить в кино, вы должны сказать, что у вас болит голова, или придумать какое-то другое объяснение, но не рисковать обидеть друга, сообщая ему действительную причину.</H4>
<INPUT   type=radio name=Q18>Да <BR>
<INPUT type=radio   name=Q18> Нет <BR>
  <LI>
 <H4><INPUT size=1 name=T19> 19. Настоящий друг требует, чтобы его близкие поступали всегда наилучшим для него образом, даже когда они не хотят этого.</H4>
<INPUT   type=radio name=Q19>Да <BR>
<INPUT type=radio   name=Q19> Нет <BR>
  <LI>
 <H4><INPUT size=1 name=T20> 20. Люди не должны упрямо и настойчиво защищать свои убеждения всякий раз, когда кто-нибудь выразит противоположное мнение.</H4>
<INPUT   type=radio name=Q20>Да <BR>
<INPUT type=radio   name=Q20> Нет<BR>
  
<CENTER>
<P><TEXTAREA name=s1 rows=4 cols=70> </TEXTAREA> </P><INPUT onclick=check_me() type=button value="Показать результат">&nbsp;&nbsp;&nbsp;&nbsp; 
<INPUT type=reset value="Сбросить ответы"> </CENTER><BR><BR></FORM>
<P>
<P></P></FONT></BODY>
Ответ: Zarina_g, а для чего вопросы теста помещены в инпуты?

и почему результат вы пытаетесь вывести в текстовую область?

какой в этом "глубинный смысл"?

теги <input type="text"> и <textarea> предназначены для того, чтобы пользователь что-то в них вводил
у вас же пользователю ничего вводить не надо, его задача -- только радиокнопки отмечать.