Динамически заполнить поле после получения значения из выпадающего списка - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть форма, которая использует выпадающее меню для выбора опции. После того, как опция выбрана, я хочу получить значение из моей БД, чтобы заполнить следующее поле соответствующим значением (в сценарии это получить квадратные метры арендуемого имущества - но это значение можно редактировать)

Это поле, в котором у меня есть варианты:

<div>
    <label class="control-label " for="local">Local</label>
    <select class="select form-control" id="local" name="local" ><?php echo $lista_fraccoes;?></select>
</div>

после этого у меня есть скрипт для получения данных:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$('#local').on('change', function(){
    var .local = this.value;
    $.ajax({
        type: "POST",
        url: "area_fraccao.php",
        data:'local='+local,
        success: function(result){
            $("#area").value(result);
        }
    });
});
</script>

И после этого у меня есть поле, которое я хочу заполнить:

<div class="form-group m-2 ">
    <label class="control-label " for="area" type="value">Area</label>
    <div class="input-group">
        <div class="input-group-addon">
            <i class="fas fa-ruler-combined"></i>
            </i>
        </div>
        <input class="form-control" id="area" name="area" placeholder="Em m2" type="value" value=""/>
    </div>

В файле area_fraccao.php я получаю соответствующее значение:

require_once 'config.php';
require_once 'functions.php';

$local = $_GET['local'];

$query_area = "SELECT * FROM TbFraccao WHERE PkFraccao=" . $local;

$result_area = mysqli_query($link, $query_area);
while ($row_area = mysqli_fetch_assoc($result_area)){
    $area = $row_area['FraccaoArea'];
    echo $area;
};

Решение, которое я использую, представляет следующие ошибки в веб-инспекторе

enter image description here

Код, который я использую, обновлен в соответствии с указанными предложениями.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Глядя на ваш код, код выглядит хорошо. Убедитесь, что в запросе нет ошибок, проверив, был ли запущенный запрос успешным, проверьте, есть ли хотя бы один результат, и удалите точку с запятой после закрывающей скобки.

if($result_area = mysqli_query($link, $query_area)){//the query is Ok
 if(mysqli_num_rows($result_area)>0){//check there is atleast one result
  while ($row_area = mysqli_fetch_assoc($result_area)){
    $area = $row_area['FraccaoArea'];
     echo $area;
  }
  }
}
else{//you have an error when writing your query
  echo 'Wrong query';
 }

Если это не помогает, возможно, проблема в том, что вы не очистили данные во время сохранения, и есть символы из этих данных, которые мешают выполнению запроса. Покажите нам, как вы делали фильтрацию перед сохранением данных.

0 голосов
/ 05 ноября 2018

Установить значение входных элементов, используя метод значения jQuery

$("#area").value(result);

Метод html () используется для установки innerHTML элементов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...