Ответы пользователя по тегу PHP
  • Где ошибка в switch-case?

    @dexes56
    Back-end engineer
    Интерпретатор подставит в switch результат выполнения $mcg['klost'] && $mcg['slost'], а он будет true или false. В итоге в рамках твоего примера это бессмысленно, если тебе нужно проверить две переменные, то используй if.

    Код, аналогичный твоему, для понимания:
    $status = '';
    $statusok = 'Выполнен';
    $statusbad = 'Не выполнен';
    $something = $mcg['klost'] && $mcg['slost']; // в $something будет true или false, третьего не дано
    $somethingElse = $mcg['klost'] == 0 && $mcg['slost'] == 0; // здесь то же самое, true или false
    
    switch ($something):
        case ($somethingElse):
            $status = $statusok;
            break;
        default:
            $status = $statusbad;
            break;
    endswitch;
    
    $smarty->assign('status', $status);


    Кстати, если у тебя в klost будет 1, а в slost будет 0, то в $something и $somethingElse будет false и в $status упадёт 'Выполнен'.
    Ответ написан
  • Как в PHP отправить POST запрос?

    @dexes56
    Back-end engineer
    Вопрос: Как в PHP отправить POST запрос?
    Надеюсь я его верно понял.
    Хост с www или без покажут заголовки, если что в них будет код 300 с копейками и в location будет видно куда Вас послали.

    $host = 'www.example.com';
    $data = urlencode('param1=a&param2=b&param3=25');
    
    $headers = array();
    $headers[] = 'POST /path/to/page HTTP/1.1';
    $headers[] = 'Host: ' . $host;
    $headers[] = 'User-Agent: PHP/' . phpversion();
    $headers[] = 'Content-Type: text/html; charset=utf-8';
    $headers[] = 'Content-length: ' . strlen($data);
    $headers[] = 'Connection: close';
    $headers[] = '';
    $headers[] = '';
    
    $content = implode("\r\n", $headers) . $data;
    $result = '';
    
    $sock = fsockopen($host, 80);
    fputs($sock, $content);
    while (!feof($sock))
        $result .= fread($sock, 32000);
    fclose($sock);
    
    echo $result;


    Надеюсь мой ответ помог Вам.
    Ответ написан
    Комментировать
  • Как реализовать картинку и 4 ответа?

    @dexes56
    Back-end engineer
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    
    <img src="#" id="img_load">
    
    <a href="#" name="button1" data-num="1" class="button">кнопка</a>
    <a href="#" name="button2" data-num="2" class="button">кнопка</a>
    <a href="#" name="button3" data-num="3" class="button">кнопка</a>
    <a href="#" name="button4" data-num="4" class="button">кнопка</a>
    
    <div class="results"></div>
    
    <script language="javascript" type="text/javascript">
        $('.button').on('click', function(e){
            e.preventDefault();
    
            var img = $('#img_load');
            var current = $(this);
            var buttons = $('.button');
    
            $.ajax({
                type: 'POST',
                url: 'setings.php',
                data: 'btn=' + current.data('num'),
                success: function(data){
                    $('.results').html(data);
    
                    buttons.each(function(){
                        $(this).html( 'Кнопка ' + $(this).data('num') );
                    });
    
                    current.html( 'Кликнули сюда' );
    
                    img.attr('src', 'image url');
                }
            });
    
        });
    </script>
    Ответ написан
    Комментировать