Я хочу обновить минимальное значение числового поля в HTML-форме на значение, возвращаемое из сообщения Ajax без обновления страницы - PullRequest
0 голосов
/ 29 августа 2018

Я сейчас работаю над сайтом аукциона. У меня есть форма, в которой, если пользователь делает новую ставку, новая ставка публикуется через ajax в php-файл для обновления базы данных, а затем возвращается для вывода в качестве новой самой высокой ставки в html.

   var aucid = "<?php echo $auctionID; ?>";

   $.ajax({
   url: "JqueryPHP/Price.php",
   method: "POST",
   data: {'auctionid': aucid },
   success: function (result) {
    $('#price').html(result);

    }
         });


        }, 333);


  $("input[name='auctionid']").val("<?php echo $auctionID; ?>");

  $('form').bind('submit', function (event) {


   event.preventDefault();// using this page stop being refreshing 



      $.ajax({

       type: 'POST',
        url: 'JqueryPHP/HighestBid.php',
        data: $('form').serialize(),
        success: function () {
          alert('form was submitted');
        }
      });

    });

  <form> 
        <input type="number"min="<?php echo $startingprice?>"  style="width: 
       10em;" size="35" 
       name="newbid" id="newbid" tabindex="1" class="form-control"  
        placeholder="New Bid €" value="" required>
                                                <br>

                        <div class="form-group">
                                    <div class="row">

    <input type="submit" name="submit" id="submit" tabindex="2" class="form- 
    control btn btn-login" style="width: 14em" value="submit">

                                    </div>
                                </div>
                              <input name='auctionid' style="display:none"/>  



                                                  </form>

      <?php
      //JqueryPHP/Price.php
     $auctionid = $_POST['auctionid'];
     $conn = new mysqli('localhost', 'root', '', 'auctionsite');
     $sql='SELECT  * FROM auction WHERE auctionid="'.$auctionid.'"';
      if($rs=$conn->query($sql)){ 

   $row=$rs->fetch_assoc();
   $highestbid = $row["highestbid"];
   }

        echo $highestbid;

 //JqueryPHP/HighestBid.php

 if (isset($_POST['newbid'])) 
 {
  $newbid=$_POST['newbid'];

      $userid = $_SESSION['userid'];
  $auctionid = $_POST['auctionid'];
   $conn = new mysqli('localhost', 'root', '', 'auctionsite');
 $sql = "UPDATE auction
    SET highestbid = '$newbid', useridhighestbid = '$userid'
    WHERE auctionid = '$auctionid'";
   if(@$conn->query($sql)){  //execute the query and check it worked    
                        return TRUE;
                    } 

   }

enter image description here enter image description here enter image description here

Проблема в том, что человек может ввести ставку ниже текущей максимальной ставки, которую вам нельзя разрешать делать. Когда обновляется новая максимальная ставка, минимальная цена для ставки, которую может ввести человек, остается начальной ценой, потому что я не уверен, как использовать новое максимальное значение, возвращаемое сообщением ajax, чтобы обновить минимальное значение в форме с новая самая высокая цена.

Я определенно знаю, что мне следует использовать javascript вместо php для обновления значения min в форме, я просто не знаю, как это сделать, потому что я очень новичок в javascript.

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

убедитесь, что он больше с <или>

0 голосов
/ 29 августа 2018

попробуйте это.

HTML
<input type="number" id='price' onblur='checkMinPrice("idOfItem")'>

JS
function checkMinPrice(idOfItem){

var enteredPrice = $("#price").val();
// use ajax here to fetch minimum price from server.
// suppose we have fetched price and it is saved in "MinPrice" variable

if(MinPrice >= enteredPrice){
    //give alert or any other type of error here.
    alert("Entered price must be greater than minimum price");
    $("#price").focus(); // move the curson to price field to ask him to enter higher price.
}
}
0 голосов
/ 29 августа 2018

Чтобы изменить значение поля ввода с помощью JavaScript, вы должны использовать что-то вроде этого:

document.getElementById('newbid').value = valueReturnedFromAjax;

Вам просто нужно заменить valueReturnedFromAjax на новое значение, которое вы вернули. PHP только дает входному значению его начальное значение, поэтому оно будет переопределено.

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