Аое. Вы не создаете форму или POST с несколькими частями, вы просто вставляете необработанный JSON в тело POST. PHP не расшифрует это и поэтому не будет заполнять Аое. Вы не создаете форму или POST с несколькими частями, вы просто вставляете необработанный JSON в тело POST. PHP не расшифрует это и поэтому не будет заполнять [111] чем-либо. Необработанное тело POST будет доступно в специальном потоке Если вы хотите, чтобы PHP обрабатывал Исходя из запроса, вы захотите выяснить, как заставить ваш JavaScript сделать правильный
чем-либо. php://input
, и его можно поймать и декодировать следующим образом: $rawPost = file_get_contents('php://input');
$decodedPost = json_decode($rawPost);
$image = $decodedPost->image;
multipart/form-data
POST. В качестве бонуса, вы можете просто загрузить изображение как есть, не используя его, что сэкономит вам 25% от размера вашего запроса, и PHP запишет его в временный файл вместо памяти.
Необработанное тело POST будет доступно в специальном потоке php://input
, и его можно поймать и декодировать следующим образом:
[110]
Если вы хотите, чтобы PHP обрабатывал Исходя из запроса, вы захотите выяснить, как заставить ваш JavaScript сделать правильный multipart/form-data
POST. В качестве бонуса, вы можете просто загрузить изображение как есть, не используя его, что сэкономит вам 25% от размера вашего запроса, и PHP запишет его в временный файл вместо памяти.
Поскольку Вы обращаетесь к полю комбинированного списка, я предполагаю, что Вы не хотите использовать привязку данных с 2 путями (если так, взгляд на использование a BindingList
)
public class Country
{
public string Name { get; set; }
public IList<City> Cities { get; set; }
public Country(string _name)
{
Cities = new List<City>();
Name = _name;
}
}
List<Country> countries = new List<Country> { new Country("UK"),
new Country("Australia"),
new Country("France") };
bindingSource1.DataSource = countries;
comboBox1.DataSource = bindingSource1.DataSource;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";
Найти страну выбрало в связанном поле комбинированного списка, Вы сделали бы что-то как: Country country = (Country)comboBox1.SelectedItem;
.
Если Вы захотите, чтобы ComboBox динамично обновил, то необходимо будет удостовериться, что структура данных, которую Вы установили как DataSource
реализации IBindingList
; одна такая структура BindingList<T>
.
Подсказка: удостоверьтесь, что Вы связываете DisplayMember
к Свойству на классе и не общедоступном поле. Если Вы классифицируете использование public string Name { get; set; }
это будет работать, но если это использует public string Name;
это не сможет получить доступ к значению и вместо этого отобразит тип объекта для каждой строки в поле комбинированного списка.
public class Country
{
public string Name { get; set; }
public IList<City> Cities { get; set; }
public Country()
{
Cities = new List<City>();
}
}
public class City
{
public string Name { get; set; }
}
List<Country> Countries = new List<Country>
{
new Country
{
Name = "Germany",
Cities =
{
new City {Name = "Berlin"},
new City {Name = "Hamburg"}
}
},
new Country
{
Name = "England",
Cities =
{
new City {Name = "London"},
new City {Name = "Birmingham"}
}
}
};
bindingSource1.DataSource = Countries;
member_CountryComboBox.DataSource = bindingSource1.DataSource;
member_CountryComboBox.DisplayMember = "Name";
member_CountryCombo
Box.ValueMember = "Name";
Это - код, который я использую теперь.
Для краткого описания существует 2 способа использовать Поле комбинированного списка/Поле списка
1) Добавьте Объекты Страны к свойству Items и получите Страну как Selecteditem. Для использования этого, необходимо переопределить ToString Страны.
2) Используйте DataBinding, установите DataSource на IList (Список <>) и используйте DisplayMember, ValueMember и SelectedValue
Для 2) Вас будет нуждаться в списке стран сначала
// not tested, schematic:
List<Country> countries = ...;
...; // fill
comboBox1.DataSource = countries;
comboBox1.DisplayMember="Name";
comboBox1.ValueMember="Cities";
И затем в SelectionChanged,
if (comboBox1.Selecteditem != null)
{
comboBox2.DataSource=comboBox1.SelectedValue;
}
Попробуйте что-то вроде этого:
yourControl.DataSource = countryInstance.Cities;
И если Вы будете использовать WebForms, то необходимо будет добавить эту строку:
yourControl.DataBind();