как получить значение из базы данных и отобразить вычисленное значение перед нажатием кнопки отправки

#javascript #php #html #css

#javascript #php #HTML #css

Вопрос:

расстояние до источника назначения филиала (базы данных) Бангалор Ченнаи 500

     <?php
    $db=mysqli_connect("localhost","root","","courier");
    if (isset($_POST['weight'])) {
    $sour=$_POST['source'];
    $dest=$_POST['dest'];
    $weight=$_POST['weight'];
    $sql="SELECT distance FROM branch WHERE source='$sour' AND destination='$dest'";
    $result=mysqli_query($db,$sql);
    $row=mysqli_fetch_array($result);
    $amt=$row['distance']*$weight*10;
    echo $amt;
    }
    ?>
  
  <!DOCTYPE html>
        <html lang="en">
        <head>
          <title>BOOKING</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" 

 href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
          <script 
 src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
 </script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
          <style>
        <div class="form-group">
          <label for="source">SOURCE</label>
          <select class="form-control" name="source" id="src">
            <option>SELECT</option>
            <option>BANGALORE</option>
            <option>CHENNAI</option>
            <option>BOMBAY</option>
            <option>KOLKATA</option>
            <option>HYDERABAD</option>
            <option>THIRUVANANTHAPURAM</option>
          </select>
        </div>
     <div class="form-group">
          <label for="dest">DESTINATION</label>
          <select class="form-control" name="dest" id="dst">
            <option>SELECT</option>
            <option>BANGALORE</option>
            <option>CHENNAI</option>
            <option>BOMBAY</option>
            <option>KOLKATA</option>
            <option>HYDERABAD</option>
            <option>THIRUVANANTHAPURAM</option>
          </select>
        </div>
          <div class="form-group">
          <label for="weight">WEIGHT(in kgs):</label>
          <input type="textarea" class="form-control" id="weight " placeholder="Enter Weight" name="weight">
        </div>
          <div class="form-group">
          <label for="stadd">AMOUNT:</label>
          <input type="text" class="form-control"  name="amt" id="amt">
        </div>
        <button type="submit" class="btn btn-success" >Submit</button>
      </form>
  
   <script type="text/javascript">
    $(document).on('change','#dst',function(){
        var source=$('#src').val();
        var destination=$('#dst').val(); 
        var weight=$('#weight').val();
        $.ajax({
          method:"post",
          url:"amount.php",
          data:{source:'source',dest:'destination',weight:weight}

        })
        .done(function(data){
          $("#amt").val(data);
        });

    });

  </script>

  

Мне нужно получить значение из ветки, скажем, расстояние, а затем вычислить сумму, равную весу * расстоянию * 10
Я пытался сделать это таким образом, но его значение не отображается в поле суммы
Я пытался использовать для этого ajax, php и jquery, но я новичок в этом, поэтому я не могу понять, что не так с кодом

Комментарии:

1. где ваш ajax-код? Здесь вам нужно написать ajax для onblur onchange события or, которое вызовет ajax, и из PHP-файла вы можете выполнить вычисленную вещь и отправить ее обратно в тот же текст с его идентификатором «stadd»

2. если вы хотите показать вычисленные данные перед нажатием кнопки отправки, то при изменении назначения вызовите функцию jquery, которая отправит запрос на новую страницу php, где у вас есть код запроса, вы должны отправить назначение, а также исходные данные в этом ajax. php-код вернет эти данные обратно на вашу текущую страницу, и вам нужно просто вставить их в соответствующее поле

3. $sql="SELECT distance FROM branch WHERE username='$sour' AND password='$dest'"; мне это кажется подозрительным. вы добавили источник в качестве имени пользователя и назначения в качестве пароля и запрашиваете расстояние? Означает, что здесь происходит?

4. это источник, а не имя пользователя, а адрес назначения, а не пароль

Ответ №1:

В пункте назначения обмена вы можете отправить ajax-запрос для вычисления значения.

 $(document).on('change', '.destination', function(){

    $.get('/url', function(res)
    {
       console.log(res);
    });
    });
  

В res вы можете получить значение.