|
|
|
| Всем привет!
Необходимо разобрать строку и потом в зависимости от того, что мы заносим в переменную сравнивать, если то, что хранится в переменной равно условию, тогда присваиваем, ну и потом выводим:
$i = 1;
$j = 0;
while ($i <= 10)
{
$industry[$i] = substr($data[0][0]['industry'], $j, 1);
switch ($industry[$i])
{
case "V":
$industry[1] = $industry[$i];
break;
case "C":
$industry[2] = $industry[$i];
break;
case "I":
$industry[3] = $industry[$i];
break;
case "R":
$industry[4] = $industry[$i];
break;
case "W":
$industry[5] = $industry[$i];
break;
case "L":
$industry[6] = $industry[$i];
break;
case "N":
$industry[7] = $industry[$i];
break;
case "M":
$industry[8] = $industry[$i];
break;
case "A":
$industry[9] = $industry[$i];
break;
case "O":
$industry[10] = $industry[$i];
break;
}
$i++;
$j = $j + 2;
}
|
Потом заполняем checkbox:
<input type='checkbox' name='industry[1]' value='V' <?php if($industry[1] == "V") echo "checked"; ?> class='industry'> VoIP<br />
<input type='checkbox' name='industry[2]' value='C' <?php if($industry[2] == "C") echo "checked"; ?> class='industry'> CLEC<br />
<input type='checkbox' name='industry[3]' value='I' <?php if($industry[3] == "I") echo "checked"; ?> class='industry'> ILEC<br />
<input type='checkbox' name='industry[4]' value='R' <?php if($industry[4] == "R") echo "checked"; ?> class='industry'> RBOC<br />
<input type='checkbox' name='industry[5]' value='W' <?php if($industry[5] == "W") echo "checked"; ?> class='industry'> Wireless<br />
<input type='checkbox' name='industry[6]' value='L' <?php if($industry[6] == "L") echo "checked"; ?> class='industry'> Long-Haul<br />
<input type='checkbox' name='industry[7]' value='N' <?php if($industry[7] == "N") echo "checked"; ?> class='industry'> International<br />
<input type='checkbox' name='industry[8]' value='M' <?php if($industry[8] == "M") echo "checked"; ?> class='industry'> Minutes<br />
<input type='checkbox' name='industry[9]' value='A' <?php if($industry[9] == "A") echo "checked"; ?> class='industry'> Carrier Hotel<br />
<input type='checkbox' name='industry[10]' value='O' <?php if($industry[10] == "O") echo "checked"; ?> class='industry'> Other<br />
|
Но в БД, к примеру, если у меня хранится запись в виде: V|C|A|O, то при разборе строки, но почему в checkbox устанавливаются только первые две переменные? И то, только в том случае, если они идут по порядку, который установлен в value в checkbox.
Как с этим бороться? | |
|
|
|
|
|
|
|
для: Vados
(08.09.2007 в 13:16)
| | Кто-нибудь реально может помочь?! | |
|
|
|
|
|
|
|
для: Vados
(08.09.2007 в 15:32)
| | А можно встречный вопрос - зачем у вас switch? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 15:36)
| | + еще один - вы не умеете пользоваться for или для понта сделали через while? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 15:36)
| | Я бы спросил - зачем цикл... | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 16:10)
| | А если точнее - зачем все это до... | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 16:15)
| | Ну зачем, пожалуй, понятно... непонятно зачем строка в БД вертикальной чертой разбита. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 16:28)
| | Не знаю, наверное еще explode забыто, а мне ничего не понятно, ну тогда вам и карты в руки :) | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 16:31)
| | Символ разделителя (и explode соответственно) требуется тогда, когда элементы могут быть переменной длины:
sim5|Trianon|Vados
Vados|sim5
|
А для отдельных буковок
никакие палки не нужны. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 16:37)
| | Я не про палки - не пойму, нафига нужна первая часть кода вообще, для чего, если потом разложили то что есть в базе (с палками, без палок, это уже второй вопрос), ради сортировки? Вот чего хотел автор добиться, я так и не понял :) Наверное я тупой :)) | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 16:40)
| | Он хочет, чтоб форма с чекбоксами принимала вид, соответствующий множеству (набору флажков) хранимому в поле таблицы БД. А мы тут лясы точим.
А потом он наверное будет хотеть, чтоб поле с набором в строке таблицы БД принимало значение соответствующее множеству расставленных в форме флажков. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 16:42)
| | Ну хочет, тогда молчу... | |
|
|
|
|
|
|
|
для: sim5
(08.09.2007 в 16:44)
| |
<?php
$letters = array('V' => 'VoIP', 'C' =>'CLEC','I' => 'ILEC'
,'R' => 'RBOC','W' => 'Wireless','L' => 'Long-Haul'
,'N' => 'International' ,'M' => 'Minutes'
,'A' => 'Carrier Hotel','O' => 'Other');
$field = mysql_result(mysql_query("SELECT lset FROM tbl WHERE id = $id"), 0)
$r = str_split($field);
$data = array();
foreach($r as $l) $data[$l] = 1;
unset($data['|']);
foreach ($letters as $key => $label)
echo "<input type='checkbox' name='industry[]' value='$key' "
. (empty($data[$key])?'':'checked') . " class='industry'> $label<br />";
|
А обработку чекбоксов писать не буду из принципа.
Если (пока) человек не перепишет свой код из расчета, что режима регистр глобалс нету. И больше никогда не будет. | |
|
|
|