У меня есть 2 формы:
Form 1 -> create strategy
Form 2 -> create project
Форма 2 использует данные, которые загружаются в базу данных с помощью формы 1.
Форма 1 правильно загружает базу данных.
В форме 2 отображаются все стратегии, уже имеющиеся в базе данных.
Что не работает (пока):
Когда я создаю стратегию и загружаю ее в базу данных с помощью формы 1, стратегия недоступна в раскрывающемся меню вформа 2. Мне нужно перезагрузить страницу, чтобы увидеть ее.
В настоящее время форма 1 и форма 2 используют AJAX для загрузки и отображения всех данных.
Сначала я использовал $(document).ready(function(){...}
.Этот метод был неправильным, так как я загружал раскрывающийся список с момента загрузки документа (и, следовательно, до загрузки формы).
Я пытался со следующим утверждением $(document).click(function){...}
, но у меня та же проблема.
Я также пытался поместить jQuery в отдельный скрипт (так как у меня есть несколько скриптов jQuery под $(document).click(function(){...}
, но проблема та же.
Вот фрагмент кода jQuery:
$(document).click(function(){
$("select#newProjectMarketStrategy").change(function(){
var selectedMarketStrategy = $("#newProjectMarketStrategy option:selected").val()
$.ajax({
type: 'POST',
url: './php/returnStrategy.php',
data: {marketStrategy:selectedMarketStrategy}
)}.done(function(data){
$("#marketStrategyId").html(data);
});
});
});
Я не знаю, могу ли я обновить раскрывающийся список после того, как форма была загружена в базу данных без перезагрузки страницы.
В текущем коде отображается запись, уже имеющаяся в базе данных.Единственная проблема, когда я загружаю новые данные в базу данных на основе формы 1,
HTML разметка:
<form>
<select id="newProjectMarketStrategy" required>
<option value="">Select Market Strategy</option>
<?php foreach ($marketStrategy=marketStrategy() as $key => $value) {echo $marketStrategy[$key];} ?>
</select>
</form>
PHP код:
<?php // RETURN COUNTRY BASED ON REGION SELECTED
echo "<select id=\"newStrategyCountryId\">";
echo "<option value=\"N/A\">Not Applicable</option>\n";
if (ISSET($_POST["marketStrategy"])) {
$marketStrategy = $_POST["marketStrategy"];
if (($marketStrategy != '') || ($marketStrategy != 'N/A')) {
$bdd = new PDO('mysql:host=localhost;dbname=workplan;charset=utf8', 'root','');
$region_market_strategy=$bdd->query("SELECT * FROM market_strategy WHERE market_strategy_id ='" . $marketStrategy . "'");
while ($data = $region_market_strategy->fetch()) {
$var=$data['strategy_id'];}
$dbextract=$bdd->query("SELECT * FROM strategy WHERE strategy_id = '". $var . "'");
while ($data = $dbextract -> fetch()) {
if ($data['strategy_id'] == $var) {
echo "<option value=\"" . $data['strategy_id'] ."\" selected>" . $data['strategy'] . "</option>\n";
} else{echo "<option value=\"" . $data['strategy_id'] ."\">" . $data['strategy'] . "</option>\n";}
}
}
}
echo "</select>";
?>