input type text добавляются пробелы

Discussion in 'PHP' started by dondy, 27 Aug 2015.

  1. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    php принимает данные с формы html, но в этом обнаружил проблему - мобильные браузер андроида добавляет при загрузке страницы в input type text пробелы, ещё не заполненая форма а пробелы в value уже есть, в других браузерах всё нормально, из-за чего это ? и как это можно убрать ?
     
  2. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    обнаружил что создается перенос строки, из за того что скрипт php в несколько строк, если в одну строку то переноса нет, для многострочного кода это можно пофиксить не делая код в одну строку ?
     
  3. Rubaka

    Rubaka Elder - Старейшина

    Joined:
    2 Sep 2007
    Messages:
    263
    Likes Received:
    150
    Reputations:
    28
    Покажи кусок скрипта
     
  4. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    появляется пробел
    PHP:
    <input type="text" autocomplete="off" maxlength="20" placeholder="Введите название города" name="city" value="
    <?php
    if(empty($_POST['city'])){
    }
    else{
    echo 
    $_POST['city'];
    };
    ?>
    ">
    рабочий вариант:
    PHP:
    <input type="text" autocomplete="off" maxlength="20" placeholder="Введите название города" name="city"<?php if(empty($_POST['city'])){}else{echo ' value="'.$_POST['city'].'"';};?>>
     
  5. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    Естественно так и будет с ошибкой т.к. в html у тебя перенос строки, а вот так заработает, сравнивай код:
    PHP:
    <input type="text" autocomplete="off" maxlength="20" placeholder="Введите название города" name="city" value="<?php if(empty($_POST['city'])){
    }
    else{
    echo 
    $_POST['city'];
    };
    ?>">
    Разница заметна?
    Можно ещё так:
    PHP:
    <?php
    function city ()
    {
       
    $_POST['city'] = htmlspecialchars($_POST['city']);
    if(empty (
    $_POST['city'])){
       }
         else{
       echo 
    $_POST['city'];
       };
    }
    ?>
    <input type="text" autocomplete="off" maxlength="20" placeholder="Введите название города" name="city" value="<?php city();?>">
    И Рекомендую использовать select:
    HTML:
    <select name="city" id="city">
    <option selected="selected" value="1">Город 1</option>
    <option value="2">Город 2</option>
    ....
    <option value="n">Город n...</option>
    </select>
    Хотя бы из за того, что проще выбрать, чем печатать, особенно с телефона/планшета.
    Так же разбить запрос по областям, с области брать основные города т.е. всё в массиве и подтягивать это дело лучше через ajax:
    PHP:
    <?php
    $city 
    = array (
        
    'Область 1' => array (
        
    => 'Город 1',
        
    => 'Город 2',
        
    => '...',
        
    => 'Город n',
      ),
    );
    ?>
    http://rghost.ru/8GJ49q7kv - список в разных форматах php/xml/sql/csv (с просторов) или GeoIP http://habrahabr.ru/post/193024/
    [offtop]
    Ещё замечание - сделай декстоп версию сначала, а затем переделывай/подгоняй под мобильную версию на поддомен - меньше проблем будет тем более зная весь код, как пример _lenta.ru/rubrics/science/ и _m.lenta.ru/rubrics/science/
    [/offtop]
     
    _________________________
    dondy likes this.