Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Chained select, Задействовние массивов с ajax post 
:(
    Опции темы
ekodrive
  Дата 12.5.2017, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 4.1.2006

Репутация: 0
Всего: 0



Добрый день друзя.
Вот сталкнулься весьма интерестной проблемой. Есть форма заказов обоев для внутренно сети. 
Заказ по одной штуки отлично работает. 
index.php
Код

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Order</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
    <script type="text/javascript">
$(document).ready(function(){
    $('#oboy').on('change',function(){
        var tovarID = $(this).val();
        var stena= $('#stena').val();
        if(tovarID){
            $.ajax({
                type:'POST',
                url:'ok.php',
                data:'tovar='+tovarID+'&stena='+stena,                
                success:function(html){                  
                    $('#cvet').html(html);                
                }
            }); 
        }
    });
    
      $('#cvet').on('change',function(){
        var color = $(this).val();
        var stena= $('#stena').val();
        var total= color*stena;
        $('#total').val(total+' USD');
  
    });
    });
    </script>          
</head>

<body>
<label>Стена кв/м:</label>
<input type="text" name="stena" id="stena">
<label for="select">Обой:</label>
<select name="oboy" id="oboy">
<option value="Первый">Первый</option>
<option value="Второй">Второй</option>
<option value="Третий">Третий</option>
</select>
<label>Цвет:</label>
<select name="cvet" id="cvet">

</select>
<label>Цена:</label>
<input type="text" name="total" id="total">
</body>
</html>


ok.php
Код

<?
include_once('lib/class.php');
$object=new BAZA();  
if(isset($_POST["oboy"]) && !empty($_POST["oboy"])){ 
   $tovar=$object->Readvib("SELECT * FROM `colors` WHERE `oboy_id`=1  ORDER BY name ASC");
   $number = 1;
    echo"<option value=\"\">Выберите цвет</option>";
    foreach ($tovar as $row) {
    echo"<option value=".$row['price'].">".$row['name']."</option>";
    $number++;
    }
}else{
        echo '<option value="">Выберите цвет</option>';
    }

?>


Но хочу чтоб было несколько полей а в таком случаее имена полей соответственно будеть выглядеть так: stena[],oboy[],cvet[],total[]

Код

<label >Стена кв/м:</label>
<input type="text" name="stena[]" id="stena[]">
<label for="select">Обой:</label>
<select name="oboy[]" id="oboy[]">
<option value="Первый">Первый</option>
<option value="Второй">Второй</option>
<option value="Третий">Третий</option>
</select>
<label>Цвет:</label>
<select name="cvet[]" id="cvet[]">

</select>
<label>Цена:</label>
<input type="text" name="total[]" id="total[]">


как быть токга с Php стороной ? неделю мучаюс.
--------------------
Смерть-Это только начало!!!
PM MAIL WWW ICQ   Вверх
whatisnot
Дата 19.9.2017, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(ekodrive @  12.5.2017,  15:33 Найти цитируемый пост)
id="oboy[]"


Это никуда не годится, во-первых нет в таком ID ни нужды, ни смысла, а во-вторых, это геморройный селектор. А для клиентского сценария вообще не нужны ID в данном случае.

Что касаемо имени списков, можно конечно иметь их как элементы одного массива, но только тогда с явно указанными индексами:

name="oboy[0]"
name="oboy[1]"
.....

На сервере иметь массив соответствий полей таблицы с индексами списков

Код

$fields = ['field1', 'field2', ...];
//принимая форму
if($post = array_diff(array_map('intval', $_POST), [0])) {
    $where = implode(' AND ', array_map(function($k, $v) {
         return $k .'='. $v;
    }, array_intersect_key($fields, $post), $post); 
}
  

Это сообщение отредактировал(а) whatisnot - 19.9.2017, 21:19
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.