php
  • html
  • 2013-02-10 2 views 0 likes 
    0

    Это PHP/HTML код формы текстового поляформы TextArea Исеть

    <textarea name="txtDispMsg" cols="1" rows="1" value="<?php if(isset($disp_msg)){echo $disp_msg;} ?>" <?php if(isset($flag) && $flag == 4){echo "div style = 'border:2px solid red;'" . "/div";}?>></textarea> 
    

    здесь проверка, если пользователь ввел значение в текстовом поле он должен остаться там, есть ли какие-либо другие ошибки в форме им .. поэтому данные другие поля в форме остаются там .. но не textarea. Зачем?

    Я использую неправильный метод установки/фиксации значения в textarea? Хотя это работает в случае обычных текстовых полей

    ответ

    0

    Значение не является атрибутом тег Textarea в синтаксисе HTML. Если вы хотите отображать содержимое в Textarea, вы должны размещать контент между открытием и закрытием тегов Textarea. Вы пытаетесь установить содержание, объявляя значение = «содержание», а вместо этого вам нужно сделать следующее:

    <textarea name="fieldName" cols="15" rows="4">CONTENT GOES HERE</textarea> 
    

    SEE: http://www.w3.org/wiki/HTML/Elements/textarea


    Если вы хотите, чтобы ваши ценности не ясно, когда вам submit, вы должны обработать их в верхней части страницы, ища какое-то действие, а затем установить их значения в форме.

    <?php 
    
    // check if values submitted to page and if not, set empty value 
    // add html escaping just in case 
    $field1 = (isset($_GET['field1'])) ? htmlspecialchars($_GET['field1']) : ""; 
    $field2 = (isset($_GET['field2'])) ? htmlspecialchars($_GET['field2']) : ""; 
    $field3 = (isset($_GET['field3'])) ? htmlspecialchars($_GET['field3']) : ""; 
    $field4 = (isset($_GET['field4'])) ? htmlspecialchars($_GET['field4']) : ""; 
    
    // toggle radio button if one was selected 
    $on = ($field4 == "1") ? "checked" : ""; 
    $off = ($field4 == "0") ? "checked" : ""; 
    
    ?> 
    
    <html> 
    <head><title>Test Page</title></head> 
    <body> 
    <h1>Test Page</h1> 
    <form action="test.php" method="GET"> 
    Field 1: <input type="text" name="field1" value="<?php echo $field1; ?>" /><br /> 
    Field 2: <input type="text" name="field2" value="<?php echo $field2; ?>" /><br /> 
    Field 3: <textarea name="field3" cols="15" rows="5"><?php echo $field3; ?></textarea><br /> 
    Field 4: On <input type="radio" name="field4" value="1" <?php echo $on; ?> /> &nbsp; <input type="radio" name="field4" value="0" <?php echo $off; ?> /><br /> 
    <input type="submit" value="Submit" /> 
    </form> 
    </body> 
    </html> 
    

    Конечно, вы можете добавить дополнительную логику и стиль, но главная проблема с кодом была плохой синтаксисом HTML и текстовое поле отличается от других тегов форм и не имеет параметра «значения».

    +0

    моей целью является то, что введенное пользователем содержимое должно оставаться там, если в другом поле есть ошибка, и php сообщает пользователю об этом, но это не должно очистить всю форму, и пользователь должен снова ввести все значения .. получил? – ashis

    +0

    См. Править выше. Все зависит от того, где вы отправляете форму, но простой пример, отправляющий обратно на ту же страницу, предполагая, что он называется test.php. Вы проверяете переменные формы и, если они существуют, заполняют с ними переменные PHP, в противном случае устанавливают их как пустые строки. Затем просто заполните значения формы этими переменными, и они либо будут пустыми, либо нет. Вы можете добавить логику, если не пусто, затем добавить красный цвет шрифта и т. Д. После этого. –

    +0

    спасибо большое микрофон. Также можно и сказать, как я могу сделать то же самое для переключателя? означает, что если пользователь нажимает на радиокнопку, и если есть где-то в другом месте, то радиокнопка должна оставаться там. – ashis

    2

    значение не используется в текстовое поле, изменить

    <textarea name="txtDispMsg" cols="1" rows="1" value="<?php if(isset($disp_msg)){echo $disp_msg;} ?>" <?php if(isset($flag) && $flag == 4){echo "div style = 'border:2px solid red;'" . "/div";}?>></textarea> 
    

    к

    <textarea name="txtDispMsg" cols="1" rows="1"> 
    <?php if(isset($disp_msg)){echo $disp_msg;} elseif(isset($flag) && $flag == 4){echo "<div style='border:2px solid red;'></div>";} ?> 
    </textarea> 
    

    См: textarea

    +0

    Это не решит проблему acutal .. Я надеюсь, что вы понимаете проблему – ashis

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