хорошо, поэтому у меня есть база данных, состоящая из двух таблиц, продуктов и поставщиков.
Все поставщики заполняют форму, и их данные затем сохраняются в таблице поставщиков, а таблица продуктов содержит списоквсе продукты, поэтому, когда поставщик заполняет форму, он может выбрать столько продуктов, сколько он пожелает, так как я использую jQuery JSON и AJAX, чтобы получить список всех продуктов, а затем заполнить раскрывающийся список всеми ними.в нем, который затем можно клонировать столько раз, сколько необходимо.
Проблема, с которой я сейчас сижу, состоит в том, как вставить все различные продукты, которые поставщик выбирает, в таблицу поставщиков илискорее просто свяжите все продукты, которые он выберет, с одним поставщиком для лучшей нормализации, поскольку все продукты уже есть?
Я буду использовать jQuery $ .ajax, чтобы POST-данные формы в формате JSON ожидающему PHPфайл, который затем проанализирует его и вставит данные в базу данных.
Так что в принципе мне нужно фигУзнайте, как соотнести данные в базе данных для достижения наилучшей возможной нормализации, и мне нужно найти способ вставить переменное количество продуктов в таблицу поставщиков или найти способ связать множество продуктов, которые он выбирает, с одним.поставщик.
Я очень новичок в реляционных базах данных, поэтому любые советы о том, как действовать, будут очень полезны, так же как и любые другие советы, которые вы, ребята, могли бы получить!для заполнения клона и POST продуктов, выбранных поставщиком:
$(document).ready(function() {
var count = 0;
//when clicked it will remove the closest div with a class of 'container'
$("span.remove").live('click', function(){
$(this).closest("div.container").fadeOut(400, function(){
$(this).remove();
$('#button').attr('disabled','');
});
});
//initialize the button
$('#button').attr('disabled','');
$('#button').click(function(){
var count = $("#systems_wrapper > .container").size();
var lastID = $("#systems_wrapper > .container:last").attr('id');
var exploded = lastID.split("_");
var increment = Number(exploded[1])+1;
//if the user has selected 5 products, disable the 'add' button
if(count >= 5){
$('#button').attr('disabled','disabled');
}else {
$('#button').attr('disabled','');
}
//clone the first drop down and give it a different ID, as well as it's child elements
var test = $('#systems_0.container').clone().attr('id', 'system_' + increment).appendTo('#systems_wrapper');
test.children(':nth-child(2)').append('<span class="remove"></span>');
test.children(':nth-child(2)').children(':first').attr('id', 'mail_' + increment).attr('class','dropDowns').attr('onchange','test();');
});
//get the products JSON object returned from test_post.php and run the necessary functions on the returned data
$.getJSON("test_post.php", function(data){
//clean out the select list
$('#box').html('');
//run the loop to populate the drop down list
$.each(data, function(i, products) {
$('#box').append(
$('<option></option>').html(products.products)
);
});
});
});
//this gets all of the products chosen and then gets each ones value and ID, and then posts it to the qwer.php file
function test(){
var sections = $('#systems_wrapper').find('.dropDowns');
var newArray = new Array();
sections.each(function(){
var id = $(this).attr('id');
var val = $(this).val();
var o = { 'id': id, 'value': val };
newArray.push(o);
});
alert(newArray);
$.ajax({
type: "POST",
url: "qwer.php",
dataType: 'json',
data: { json: JSON.stringify(newArray) }
});
}
Заранее спасибо!