|
|
|
|
|
для: provodnik
(15.11.2007 в 13:53)
| | наверное что-то похожее на это
<html><head>
<style>
#mob {background:green; }
#region {background:yellow; }
#moscow {background:red; }
</style>
<script language="JavaScript">
function getInp(nm) {
var txt = '';
if (nm == 'mob') var tt = [3,3,2,2];
if (nm == 'region') var tt = [2,2,3];
if (nm == 'moscow') var tt = [3,2,2];
for (var i=0; i<tt.length; i++) {
if (i == 0)
switch(nm){
case 'mob' :
txt += '8-<input type="text" size="' + tt[i] + '" maxlength="' + tt[i] + '" name="' + nm + '[]">\n';
break;
case 'region' :
txt += '8-(496<input type="text" size="' + tt[i] + '" maxlength="' + tt[i] + '" name="' + nm + '[]">)\n';
break;
default : txt += '8-(495)-<input type="text" size="' + tt[i] + '" maxlength="' + tt[i] + '" name="' + nm + '[]">\n';
}
else txt += '-<input type="text" size="' + tt[i] + '" maxlength="' + tt[i] + '" name="' + nm + '[]">\n';
}
document.getElementById(nm).innerHTML += txt + '<hr>' ;
}
</script>
</head><body>
<?php
if (!empty($_POST)) {
function imp(&$v, $k, $array)
{
$v = implode('-', $v);
$v = (!preg_match($array[1], $v)) ? '' : ' ' . $array[0] . $v . ' ' ;
}
if (!empty($_POST['mob'])) {
echo '<hr>mob<hr>';
$pr = array('8-', '#^\d{3}\-\d{3}\-\d{2}\-\d{2}$#');
$mob = array_chunk($_POST['mob'], 4);
array_walk($mob, 'imp', $pr);
var_dump($mob) ; #
} else $mob = array();
if (!empty($_POST['region'])) {
echo '<hr>region<hr>';
$pr = array('8-496', '#^\d{2}\-\d{2}\-\d{3}$#');
$region = array_chunk($_POST['region'], 3 );
array_walk($region, 'imp', $pr);
var_dump($region) ; #
} else $region = array();
if (!empty($_POST['moscow'])) {
echo '<hr>moscow<hr>';
$pr = array('8-495-', '#^\d{3}\-\d{2}\-\d{2}$#');
$moscow = array_chunk($_POST['moscow'], 3 );
array_walk($moscow, 'imp', $pr);
var_dump($moscow) ; #
} else $moscow = array();
echo '<hr><hr>'
. ($full_array = implode('', array_unique(array_merge($mob, $region, $moscow))));
}
?>
<form action="" method="post">
<input type="button" onclick="getInp('moscow')" value="московcкий"> (495) XХХ XX ХХ
<div id="moscow"> </div>
<input type="button" onclick="getInp('region')" value="подмосковный"> (496 ХХ) ХХ ХХХ
<div id="region"></div>
<input type="button" onclick="getInp('mob')" value="мобильный">(ХХХ) ХХХ ХХ ХХ
<div id="mob"></div>
<input type="submit" value="ok">
</form></body></html>
|
| |
|
|
|
|
|
|
|
для: provodnik
(15.11.2007 в 13:53)
| | Не понятно, что вызывает сложность. В результате у вас будет двумерный массив
$_POST[0][0] ... $_POST[0][4], из которго вы сможете получать телефоны
<?php
echo implode("-", $_POST[0]);
?>
|
| |
|
|
|
|
|
|
| Доброго времени суток.
Никак не могу придумать, как лучше сделать.
Есть форма, для занесения номеров телефонов. Для каждого из типов номера, форма состоит из нескольих полей, ограниченных для ввода символов.
Для московских телефонов такой шаблон: (495) ХХХ ХХ ХХ
Форма такая:
(495) <input type="text" size="3" maxlength="3" name="moscow[]">-
<input type="text" size="2" maxlength="2" name="moscow[]">-
<input type="text" size="2" maxlength="2" name="moscow[]">
|
Для Подмосковных телефонов такой: (496 ХХ) ХХ ХХХ
Форма такая:
(496
<input type="text" size="2" maxlength="2" name="region[]"> )
<input type="text" size="2" maxlength="2" name="region[]">-
<input type="text" size="3" maxlength="3" name="region[]">
|
Для мобильных номеров такой: (ХХХ) ХХХ ХХ ХХ
8 (<input onkeyup=ff2(this) type="text" size="3" maxlength="3" name="mob[]">)
<input type="text" size="3" maxlength="3" name="mob[]">-
<input type="text" size="2" maxlength="2" name="mob[]">-
<input type="text" size="2" maxlength="2" name="mob[]">
|
Каждых телефонов может быть как много, так и неодного. Т.е. добавляющий человек может сам добавить поля с помощью JavaScript.
На выходе для каждого из типов номеров получается массив: Ввели 559 30 25 и 456 56 23
[moscow] => Array
(
[0] => 559
[1] => 30
[2] => 25
[3] => 456
[4] => 56
[5] => 23
)
|
Потом я буду собирать из этих трёх массивов одну строку вида (495) 559-30-25, (495) 456-56-23 и заносить в текстовое поле БД.
Я вот никак не соображу, как мне работать с получаемыми массивами?
Или может кто подскажет более удобну структуру данных?
Заранее благодарен... | |
|
|
|
|