Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите дописать функцию выбора сервера...
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Помогите дописать функцию выбора сервера...

Страниц (1): [1]
 

1. android - 24 Марта, 2012 - 18:09:49 - перейти к сообщению
Здрасте, схема выполнения операции:

CODE (htmlphp):
скопировать код в буфер обмена
  1. http://data1.floomby.ru/files/share/24_3_2012/CagW1OfZ9kmGuh479AoEFQ.png
  2.  

PHP:
скопировать код в буфер обмена
  1.  
  2. function test() {
  3.                 $ret = '';
  4.                 $sub = @$_GET['sub'];
  5.                 if($sub == 'add') {
  6.                         $option = '';
  7.                         $checkbox = '';
  8.                         $list = mysql_query("SELECT * FROM `test`");
  9.                         while($res = mysql_fetch_assoc($list)) {
  10.                                 $option .= '<option value="'.$res['id'].'">'.$res['name'].' - '.$res['ip'].'</option>';
  11.                                 $checkbox .= '<input type="checkbox" name="test_'.$res['id'].'"> '.$res['name'].' - '.$res['ip'].'<br/>';
  12.                         }
  13.                        
  14.                         if(isset($_POST['go'])) {
  15.                                 $box = functions::sql_inc($_POST['name']);
  16.                                 $box_c = functions::sql_inc($_POST['name_']);
  17.                         }
  18.                        
  19.                         return '
  20.                         <form action="" method="post">
  21.                                 Сервер:<br/>
  22.                                 - Использовать один сервер: <select name="name">'.$option.'</select><br/>
  23.                                 - Использовать несколько серверов: '.$checkbox.'
  24.                                 <input type="hidden" name="go" value="1" />
  25.                                 <input type="submit" value="Добавить игру" />
  26.                         </form>
  27.                         ';
  28.                         return false;
  29.                 }
  30.  
2. DeepVarvar - 24 Марта, 2012 - 18:23:04 - перейти к сообщению
Схему выполнения операций - фтопку.

Переписать схему на ожидание всегда одного и более выбранных серверов.
Тогда даже если сервер один, представлять его массивом в котором один элемент.
И так метод обработки будет всего один, а не два как у вас.

А как это внешне для юзера будет выглядеть, уже не важно..
3. android - 24 Марта, 2012 - 18:25:35 - перейти к сообщению
DeepVarvar так что делать только с JS? Я бы без него хотел....
4. DeepVarvar - 24 Марта, 2012 - 18:34:46 - перейти к сообщению
Причем тут JS вообще?
Захочет выберет один сервер, захочет, выберет сто серверов...
если не выберет ни одного - так ему и сказать - ты ничо не выбрал.
Этот селект тока путает..
5. android - 24 Марта, 2012 - 18:40:11 - перейти к сообщению
так а как сделать тогда?

так?

<input type="checkbox" name="name[1]"> 1 сервер
<input type="checkbox" name="name[2]"> 2 сервер
<input type="checkbox" name="name[3]"> 3 сервер


$_POST['name'] - будет массив??
6. DeepVarvar - 24 Марта, 2012 - 18:45:00 - перейти к сообщению
android пишет:
так?

<input type="checkbox" name="name[1]"> 1 сервер
<input type="checkbox" name="name[2]"> 2 сервер
<input type="checkbox" name="name[3]"> 3 сервер

или так:

<input type="checkbox" name="server__1"> 1 сервер
<input type="checkbox" name="server__2"> 2 сервер
<input type="checkbox" name="server__3"> 3 сервер

как удобней так и делайте
7. android - 24 Марта, 2012 - 19:24:26 - перейти к сообщению
DeepVarvar как это все в php принять!?!?!?

иды ставятся разные!!! и вручную php я не могу менять
8. DeepVarvar - 24 Марта, 2012 - 19:30:38 - перейти к сообщению
Первый вариант:
PHP:
скопировать код в буфер обмена
  1. $serverdata = (array) $_POST['name'];
  2. $servers = array();
  3. foreach ($serverdata as $server_id) {
  4.   $servers[] = $server_id
  5. }
  6. echo join(", ", $servers);

Второй вариант:
PHP:
скопировать код в буфер обмена
  1. $servers = array();
  2. foreach ($_POST as $k => $item) {
  3.   if (preg_match("/^name__(\d+)$/", $k, $m)) {
  4.     $servers[] = $m[1];
  5.   }
  6. }
  7. echo join(", ", $servers);
9. android - 24 Марта, 2012 - 21:47:41 - перейти к сообщению
Спасибо, что бы я без вас делал!! Растерялся

 

Powered by ExBB FM 1.0 RC1