clevel
Новичок
опять регулярные выражения
что хочется: в кеше формы есть поля, для которых поставлено свойство - автозаполнение. То есть, юзер ранее заполнял аналогичное поле и выбрал тот или иной ответ. Вданном примере надо поле select с именем clc[5] "очистить" от выбранного по дефолту значения и поставить новое поле под номером три как выбранное.
В чем трудности:
1.нельзя сначал удалить все selected, так как не все поля нужно изменять
2.не совсем разобрался с условными подшаблонами в регулярных выражениях. Сейчас данная конструкция пишет ошибки...
Подскажите, как лучше решить мою задачу и правильным ли путем пошел я....
PHP:
$start="<table>\n".
"<tr>\n".
"<td>field5</td>\n".
"<td>\n".
"<select name=clc[5] style=\"blah..blah\" class=select1>\n".
"<option value=0>first\n".
"<option value=1 selected>first2\n".
"<option value=2>first3\n".
"<option value=3>first4\n".
"<option value=4>first5\n".
"</select>\n".
"</td>\n".
"</tr>\n".
"<tr>\n".
"<td>field6</td>\n".
"<td>\n".
"<input type=checkbox name=clc[6]>value".
"</td>\n".
"</tr>\n".
"<tr>\n".
"<td>field7</td>\n".
"<td>\n".
"<select name=clc[7] style=\"blah..blah\" class=select1>\n".
"<option value=0>first\n".
"<option value=1>first2\n".
"<option value=2 selected>first3\n".
"<option value=3>first4\n".
"<option value=4>first5\n".
"</select>\n".
"</td>\n".
"</tr>\n".
"</table>\n";
$num=5;
$sel=3;
$da[]="'<select name=clc\[".$num."\]([^>]*?)>(?(<option value=".$sel.">)(<option value=".$sel." selected>)|(<option value=".$sel.">))</select>'is";
$da2[]="<select name=clc[".$num."]\\1>\\2</select>";
echo preg_replace($da,$da2,$start);
В чем трудности:
1.нельзя сначал удалить все selected, так как не все поля нужно изменять
2.не совсем разобрался с условными подшаблонами в регулярных выражениях. Сейчас данная конструкция пишет ошибки...
Подскажите, как лучше решить мою задачу и правильным ли путем пошел я....