ребят сделал выбор продуктов все работает, вот только когда свое хочешь ввести и добавить, то не добавляется, что делаю не так? вот сама форма Код (Text): {SKIN_FRAME_START} <table cellspacing="0" class="print" style="width:100%"> <tr><th class="title" colspan="5"> Добавления уинов </th></tr> <? echo '<form method="post" name="inputForm" action="?mode=edition&icq='.$_GET['icq'].'"> <tr> <th class="p"> <div class="label">Номер ICQ:</div> <input name="new_1" type="text" value="'.$m['number'].'"/></th> <tr> <th class="p"> <div class="label">Пароль:</div> <input name="new_2" type="text" value="'.$m['ua'].'"/></th> <tr> <th class="p"> <div class="label">Цена:</div> <input name="new_3" type="text" value="'.$m['price'].'"/></th> <tr> <th class="p"> <div class="label">Статус:</div> <select name="type" onChange="showInput(this.selectedIndex);"> <option value="inv">inv</option> <option value="q/a">q/a</option> <option value="n/p">n/p</option> <option name="inputText">Другое</option> </select></td> <div style="display:none" id="hiddenText"> <input type="text" name="inputText" value="'.$m['type'].'" /> </div> <tr> </table> <center> <tr><td class="p">'; echo param_submit('Сохранить',"location.href='".self_url()."'",'Сбросить'); ?> </center></td></tr> </center></form> {SKIN_FRAME_END} а вот JS Код (Text): function showInput (selectIndex) { if (selectIndex != document.inputForm.type.length-1) { document.inputForm.inputText.disabled = true; document.getElementById('hiddenText').style.display='none'; } else { document.inputForm.inputText.disabled = false; document.getElementById('hiddenText').style.display='block'; document.inputForm.inputText.focus(); } }
выбираем <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> добавляются в бд, как сделать чтоб все добавлялось?
я вот например ни слова про обработку формы не вижу. ну вводим мы значение. в обработчике формы как отладку делаем? в сыром виде это поле видно? как в соседнем треде я советовал присвоение значения делать - делаем?
Ganzal у меня без обработчика, все в одном файле (знаю что не удобно, ну так начинал((() Код (Text): case 'edition': $number=htmlspecialchars($_POST['new_1']); $ua=htmlspecialchars($_POST['new_2']); $price=htmlspecialchars($_POST['new_3']); $type=htmlspecialchars($_POST['type']); $requiredFields = array('number', 'ua', 'price', 'type'); $isAllFieldsFilled = true; foreach($requiredFields as $field){ if(!isset($_POST[$field])){ $isAllFieldsFilled = false; break; } } $result = mysql_query("UPDATE `".prefix."icq` SET `number`='$number', `ua` = '$ua',`price` = '$price', `type` = '$type' WHERE `id`='".$_GET['icq']."'"); if ($result == 'true'){ echo skin_redir_msg(self_url(''),'Номер успешно отредактирован'); }else{ echo skin_redir_msg(self_url(''),'Ошибка редактирования!!!'); } break; case 'num': if ($admin) { } $bbb=mysql_query("SELECT * FROM `".prefix."shinfo`"); if (mysql_affected_rows()==0){ echo '<tr><td class="p c" colspan="6">Нет продаж!</div>'; }else{ echo "<table class='print>"; echo " <tr><th class='p'></th> <th class='p с'>Логин:</th> <th class='p'>Номер:</th> <th class='p'>пароль:</th> <th class='p'><center>Дата:</center></th> </tr>"; while($row=mysql_fetch_array($bbb)){ $t=$row['icq']; $to=$row['login']; $ua=$row['pass']; $dt=$row['data']; $tm=$row['time']; echo "<tr>"; echo "<td class='p'>".$to."</td>"; echo "<td class='p'><center>".$t."</center></td>"; echo "<td class='p'><center>".$ua."</center></td>"; echo "<td class='p'>".$dt."</td>"; echo "<td class='p'>".$tm."</td>"; echo "</tr>"; } echo "</table>"; $cool=mysql_affected_rows(); ?> Добавлено спустя 53 секунды: metadon у меня ошибок нету, у меня не доработка кода, просто я не знаю как правильно прописать, чтоб в селекте можно было добавлять свой вариант в базу данных
Блин почему все считают что если нет сообщение об ошибки, то и ошибки нет. Проверяй выбрали другое или нет, если выбрали, то пиши в базу, это можно сделать через if.. else if.. else проверять пустое поле другое или в него ввели текст, и действовать по ситуации
metadon дело в JS я проверял, если ставлю name="type" $type=htmlspecialchars($_POST['type']); то работает из выборке, а если прописываю name="inputText" $type=htmlspecialchars($_POST[' inputText']); то работает из "другое", они вместе не могут работать почему то, а если ставлю и тому и тому одно значения например inputText то воще перестает работать
так может ошибка в алгоритме, сделай его на бумажке, проследи за логикой, поставь себя на место компьютера, как ты бы определил то что тебе нужно, сколько вариантов развития событий
metadon так делал, ну целый день с этим кодом провозился, поэтому решил на форуме спросить помощи, может кто все таки тут подскажет
вы отладку не делаете и не умеете делать. это плохо. моя идея заключается в том что мы смотрим на значение селекта и если оно равно имени поля выбора то заменяем ЭТО ЗНАЧЕНИЕ (то есть самого селекта) на значение текстового поля. и тогда в базу упадет не ЗНАЧЕНИЕ_ПРИ_КОТОРОМ_ПОЛЕ_ВВОДА а значение этого поля ввода. понятно?
1. Смотрим if ( false == empty($_POST['inputText']) ) то `type` = $_POST['inputText'] 2. Или `type` = $_POST['type']