2011-01-02 4 views
1

У меня есть два вопроса:Как автоматически заполнять данные формы?

1) Я пытаюсь заполнить поля формы данными из таблицы mysql. Но по какой-то неизвестной причине я получаю завершающий / в конце значений, как только я помещаю их в текстовое поле.

<input type="text" id="first_name" name="first_name" <?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>/> 

Функция

function checkDefaultValue($val,$ret="") 
    { 
     if($val=="" || $val=='not specified') 
     { 
      return $ret; 
     } 
     else 
     { 
      return $val; 
     } 
    } 

однако, если я просто эхо <?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>

Я не получаю концевая / в конце значения. Любые идеи парней?

2) Каков наилучший способ заполнения данных в форме из db? Я в основном делаю вид edit profile, и я хочу, чтобы значения были предварительно заполнены в соответствующих полях. Да, и это не имеет никакой необходимости Аякса и такие ...

+0

Вы уверены, что косая черта, которую вы видели, была не только той, что была в конце тега ввода, чтобы указать самозакрывающийся тег: ''? (Если это так, убедитесь, что вы помещаете кавычки вокруг значения) – jhartz

+0

Альтернативный совет: не используйте синтаксис XHTML. Если вы отправляете его с неправильным типом mime (text/html), как и все остальные, его просто интерпретируют как HTML с завершающим мусором. Кроме того, если вы не встраиваете другие пространства имен, это совершенно бесцельно. – mario

ответ

2

Не забудьте кавычки:

<input type="text" id="first_name" name="first_name" value="<?php echo checkDefaultValue($vals['user_firstname']); ?>" /> 
+0

А также не забывайте 'htmlentities()' – Wim

+0

oops ... глупо меня. Благодарю. Но каков ответ на мой второй вопрос? – Bluemagica

1

Для вашего # 2 вопроса, есть только один способ заполнить поле: установите полевой атрибут value. Независимо от того, выполняете ли вы это во время создания страницы на стороне сервера или на стороне клиента, используя Javascript AJAX или plain-jane, это не имеет значения - вы по-прежнему просто заполняете поля формы атрибутом value (или selectedIndex или содержимым textarea, независимо от того, ,

Если вы делаете это на стороне сервера, вы должны пройти через значения htmlspecialchars(), в противном случае данные вы вставив потенциально может нарушить форму, если они содержат какой-либо из HTML метасимволов (', ", <, >) и приведет к уязвимости XSS на вашем сайте.

Если вы делаете это на стороне клиента, то вам придется выполнить эквивалентное экранирование с помощью json_encode() и т. Д., Чтобы предотвратить попадание любых случайных ' в данные, нарушающие Javascript.

+0

+1 для htmlspecialchars() – Rob

Смежные вопросы