За последние 24 часа нас посетили 32446 программистов и 1753 робота. Сейчас ищут 877 программистов ...

html select в php

Тема в разделе "PHP для новичков", создана пользователем wolf777, 15 ноя 2014.

  1. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    ребят сделал выбор продуктов все работает, вот только когда свое хочешь ввести и добавить, то не добавляется, что делаю не так?

    вот сама форма

    Код (Text):
    1. {SKIN_FRAME_START}
    2. <table cellspacing="0" class="print" style="width:100%">
    3. <tr><th class="title" colspan="5">
    4. Добавления уинов
    5. </th></tr>
    6. <?
    7. echo '<form method="post"  name="inputForm" action="?mode=edition&amp;icq='.$_GET['icq'].'">
    8. <tr>
    9. <th class="p">
    10. <div class="label">Номер ICQ:</div>
    11. <input name="new_1" type="text" value="'.$m['number'].'"/></th>
    12. <tr>
    13. <th class="p">
    14. <div class="label">Пароль:</div>
    15. <input name="new_2" type="text" value="'.$m['ua'].'"/></th>
    16. <tr>
    17. <th class="p">
    18. <div class="label">Цена:</div>
    19. <input name="new_3" type="text" value="'.$m['price'].'"/></th>
    20. <tr>
    21. <th class="p">
    22. <div class="label">Статус:</div>
    23. <select name="type"  onChange="showInput(this.selectedIndex);">
    24. <option value="inv">inv</option>
    25. <option value="q/a">q/a</option>
    26. <option value="n/p">n/p</option>
    27. <option name="inputText">Другое</option>
    28. </select></td>
    29. <div style="display:none" id="hiddenText">
    30. <input type="text" name="inputText" value="'.$m['type'].'" />
    31. </div>
    32. <tr>
    33. </table>
    34. <center>
    35. <tr><td class="p">';
    36. echo param_submit('Сохранить',"location.href='".self_url()."'",'Сбросить');
    37. ?>
    38. </center></td></tr>
    39. </center></form>
    40. {SKIN_FRAME_END}
    а вот JS

    Код (Text):
    1. function showInput (selectIndex) {
    2.     if (selectIndex != document.inputForm.type.length-1) {
    3.         document.inputForm.inputText.disabled = true;
    4.         document.getElementById('hiddenText').style.display='none';
    5.     }
    6.     else {
    7.         document.inputForm.inputText.disabled = false;
    8.         document.getElementById('hiddenText').style.display='block';
    9.         document.inputForm.inputText.focus();
    10.     }
    11. }
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    что, куда?
     
  3. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    выбираем
    <option name="inputText">Другое</option>

    у нас выводится
    <div style="display:none" id="hiddenText">
    <input type="text" name="inputText" value="'.$m['type'].'" />
    </div>
    вводи значения, и в бд оно не добавляется

    а вот значения

    <option value="inv">inv</option>
    <option value="q/a">q/a</option>
    <option value="n/p">n/p</option>

    добавляются в бд, как сделать чтоб все добавлялось?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я вот например ни слова про обработку формы не вижу. ну вводим мы значение. в обработчике формы как отладку делаем? в сыром виде это поле видно? как в соседнем треде я советовал присвоение значения делать - делаем?
     
  5. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
  6. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    Ganzal у меня без обработчика, все в одном файле (знаю что не удобно, ну так начинал((()

    Код (Text):
    1. case 'edition':
    2. $number=htmlspecialchars($_POST['new_1']);
    3. $ua=htmlspecialchars($_POST['new_2']);
    4. $price=htmlspecialchars($_POST['new_3']);
    5. $type=htmlspecialchars($_POST['type']);
    6.  
    7. $requiredFields = array('number', 'ua', 'price', 'type');
    8. $isAllFieldsFilled = true;
    9. foreach($requiredFields as $field){
    10.   if(!isset($_POST[$field])){
    11.         $isAllFieldsFilled = false;
    12.         break;
    13.     }
    14. }
    15.  
    16. $result = mysql_query("UPDATE `".prefix."icq` SET `number`='$number', `ua` = '$ua',`price` = '$price', `type` = '$type' WHERE `id`='".$_GET['icq']."'");
    17. if ($result == 'true'){
    18. echo skin_redir_msg(self_url(''),'Номер успешно отредактирован');
    19. }else{
    20. echo skin_redir_msg(self_url(''),'Ошибка редактирования!!!');
    21. }
    22. break;
    23.  
    24. case 'num':
    25. if ($admin) {
    26. }
    27. $bbb=mysql_query("SELECT * FROM `".prefix."shinfo`");
    28. if (mysql_affected_rows()==0){
    29. echo '<tr><td class="p c" colspan="6">Нет продаж!</div>';
    30. }else{
    31. echo "<table class='print>";
    32.     echo "
    33.     <tr><th class='p'></th>
    34.     <th class='p с'>Логин:</th>
    35.    <th class='p'>Номер:</th>
    36.     <th class='p'>пароль:</th>
    37.     <th class='p'><center>Дата:</center></th>
    38.     </tr>";
    39. while($row=mysql_fetch_array($bbb)){
    40.         $t=$row['icq'];
    41.         $to=$row['login'];
    42.         $ua=$row['pass'];
    43.         $dt=$row['data'];
    44.         $tm=$row['time'];
    45.                 echo "<tr>";
    46.            echo "<td class='p'>".$to."</td>";
    47.            echo "<td class='p'><center>".$t."</center></td>";
    48.            echo "<td class='p'><center>".$ua."</center></td>";
    49.            echo "<td class='p'>".$dt."</td>";
    50.            echo "<td class='p'>".$tm."</td>";
    51.             echo "</tr>";
    52.     }  
    53. echo "</table>";
    54. $cool=mysql_affected_rows();
    55. ?>
    Добавлено спустя 53 секунды:
    metadon у меня ошибок нету, у меня не доработка кода, просто я не знаю как правильно прописать, чтоб в селекте можно было добавлять свой вариант в базу данных
     
  7. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Блин почему все считают что если нет сообщение об ошибки, то и ошибки нет.
    Проверяй выбрали другое или нет, если выбрали, то пиши в базу, это можно сделать через if.. else if.. else проверять пустое поле другое или в него ввели текст, и действовать по ситуации
     
  8. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    metadon дело в JS я проверял, если ставлю name="type" $type=htmlspecialchars($_POST['type']);
    то работает из выборке, а если прописываю name="inputText" $type=htmlspecialchars($_POST[' inputText']);

    то работает из "другое", они вместе не могут работать почему то, а если ставлю и тому и тому одно значения например inputText то воще перестает работать
     
  9. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    так может ошибка в алгоритме, сделай его на бумажке, проследи за логикой, поставь себя на место компьютера, как ты бы определил то что тебе нужно, сколько вариантов развития событий
     
  10. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    metadon так делал, ну целый день с этим кодом провозился, поэтому решил на форуме спросить помощи, может кто все таки тут подскажет
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вы отладку не делаете и не умеете делать. это плохо.
    моя идея заключается в том что мы смотрим на значение селекта и если оно равно имени поля выбора то заменяем ЭТО ЗНАЧЕНИЕ (то есть самого селекта) на значение текстового поля. и тогда в базу упадет не ЗНАЧЕНИЕ_ПРИ_КОТОРОМ_ПОЛЕ_ВВОДА а значение этого поля ввода. понятно?
     
  12. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    1. Смотрим if ( false == empty($_POST['inputText']) ) то `type` = $_POST['inputText']
    2. Или `type` = $_POST['type']