2014-09-19 11 views
0

У меня есть метод, который используется для создания пользовательской формы из массива свойств.Сделать правильно отформатированный исходный код из функции, управляемой html

Функция работает хорошо для того, что мне нужно, однако при просмотре исходного кода это непрерывная линия, в отличие от более читаемого формата с отступом.

Вот полученный исходный код:

<form><input name=songName type=text placeholder=Title </input><input name=songArtist type=text placeholder=Artist </input><input name=songGenre type=text placeholder=Genre </input><input name=year type=number placeholder=Year </input></form> 

Вот что я хотел бы, чтобы это было:

<form> 
    <input name=songName type=text placeholder=Title </input> 
    <input name=songArtist type=text placeholder=Artist </input> 
    <input name=songGenre type=text placeholder=Genre </input> 
    <input name=year type=number placeholder=Year </input> 
</form> 

Это последняя функция, которая генерирует HTML:

public function formGenerate($formElements) 
{ 
    echo "<form>"; 

    foreach($formElements as $name=>$properties)    
    { 
     echo "<input "."name=".$name." "; 

     $propertiesArray = explode('|',$properties); 

     foreach($propertiesArray as $property)    
     { 
      $split   = $this->splitPropertyAndValue($property); 
      $propertyName = $split['property']; 
      $propertyValue = $split['value']; 

      echo $propertyName.'='.$propertyValue." "; 
     } 
     echo "</input>"; 
    } 
    echo "</form>"; 
} 

Ниже приведен пример массива, который передается для $ formElements:

$formElements = array 
(
    'songName'  => 'type:text|placeholder:Title', 
    'songArtist' => 'type:text|placeholder:Artist', 
    'songGenre'  => 'type:text|placeholder:Genre', 
    'year'   => 'type:number|placeholder:Year' 
); 
+0

fyi: теги ввода являются закрывающими тегами, во всяком случае, у вас есть пример значения массива '$ formElements'? – Ghost

+0

добавлен в вопрос – datavoredan

ответ

1

Вы просто должны добавить соответствующие отступы и новые строки в коде следующим образом:

public function formGenerate($formElements) 
{ 
    echo "<form>\n"; // adding the \n for form 

    foreach($formElements as $name=>$properties)    
    { 
     echo " <input "."name=".$name." "; 

     $propertiesArray = explode('|',$properties); 

     foreach($propertiesArray as $property)    
     { 
      $split   = $this->splitPropertyAndValue($property); 
      $propertyName = $split['property']; 
      $propertyValue = $split['value']; 

      echo $propertyName.'='.$propertyValue." "; 
     } 
     echo ">\n"; // self closing tag! 
    } 
    echo "</form>"; 
} 
0

использование делает из \t и \n в эхе statments ... Поиграйте с ним, и вы будете получите то, что вам нужно :)