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 :: Версия для печати :: foreach
Форумы портала PHP.SU » » Вопросы новичков » foreach

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

1. imediasun2 - 06 Февраля, 2013 - 14:38:43 - перейти к сообщению
Как выделить каждое поле базы данных (name_product,id_product)в отдельный элемент массива, чтобы параметр regions передавал отдельно эти два поля
PHP:
скопировать код в буфер обмена
  1.  
  2. $regs=mysql_query("SELECT name_product,id_product FROM products WHERE id_cat=$country_id");
  3. if ($regs) {
  4.  
  5. $num = mysql_num_rows($regs);
  6. $regions = array();
  7.  
  8. for ($i=0; $i<$num; $i++)
  9. $region[$i] = mysql_fetch_row($regs);
  10.  
  11. $i=0;
  12.     foreach ($region as $r) {
  13.         $regions[] = array('id'=>$i, 'title'=>$r);
  14.         $i++;
  15.     }
  16. $result = array('type'=>'success', 'regions'=>$regions);
  17. }
  18. else {
  19.     $result = array('type'=>'error');
  20. }
  21.  
2. sKaa - 06 Февраля, 2013 - 14:49:11 - перейти к сообщению
непонятно
3. imediasun2 - 06 Февраля, 2013 - 14:51:36 - перейти к сообщению
это все передается в ajax через regions, но в ajaxe я получаю в title оба поля базы в одном элементе массива как разделить их
4. wisedarkness - 06 Февраля, 2013 - 15:03:02 - перейти к сообщению
Первый массив:
PHP:
скопировать код в буфер обмена
  1. $regs=mysql_query("SELECT name_product FROM products WHERE id_cat=$country_id");
  2.     while($row = mysql_fetch_array($regs))
  3.      {  действия над массивом
  4.       }
  5.  

Второй массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. $regsS=mysql_query("SELECT id_product FROM products WHERE id_cat=$country_id");
  3.     while($row = mysql_fetch_array($regsS))
  4.      {  действия над массивом
  5.       }
  6.  
5. esterio - 06 Февраля, 2013 - 15:34:28 - перейти к сообщению
Мб Вы имели ввиду
CODE (javascript):
скопировать код в буфер обмена
  1. for(var i in array)
  2. {
  3.    alert(array[i])
  4. }
6. imediasun2 - 06 Февраля, 2013 - 16:51:52 - перейти к сообщению
а что это дает распишите, и это же по моему js в js вывод вот такой через ajax
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(result.regions).each(function() {
  3. options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('title') + '</option>';
  4. });
  5.  
7. esterio - 06 Февраля, 2013 - 17:02:24 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. $(result.regions).each(function() {}

Равно
CODE (javascript):
скопировать код в буфер обмена
  1. for(var i in result.regions)

Толко в Вашем примере jQuery, а в моем - голый JS.
Учите JS Радость Радость
8. imediasun2 - 06 Февраля, 2013 - 17:16:52 - перейти к сообщению
у меня в js в options заносится id- номер по $num и title каждое значение из базы в массиве который содержит name_product,id_product . Как мне в js вывести в id -id_product, а в title name_product
9. esterio - 06 Февраля, 2013 - 17:25:21 - перейти к сообщению
Мне кажется Вы не знаете что хотите.
imediasun2 пишет:
$num и title

Ето ПХП
imediasun2 пишет:
у меня в js

Ето JS.
Запутали меня Вы однако.

Ладн думаю Вам надо так.

Идет AJAX запрос.
Отработал ПХП. припустим результат - ето массив который нам надо передать обратно в JS. Назовем его $result

Теперь в JS обходим массив
CODE (javascript):
скопировать код в буфер обмена
  1. for(var i in result.regions)
  2. {
  3. alert(result.regions[i])
  4. }


Правильно ли я Вас понял?
10. imediasun2 - 06 Февраля, 2013 - 17:31:40 - перейти к сообщению
оставим js, там все правильно , что вернулось через ajax то и есть, у меня в пхп из базы два поля приходят id_product и name_product, дальше массив собирается в $result, вот на этом этапе я и не понимаю как сделать так чтобы result содержал в себе 2 элемента в regions и третий type =>sucsess (1-id_product и 2 -name_product)

 

Powered by ExBB FM 1.0 RC1