javascript - 我想用从 ajax 帖子返回的值更新 html 表单中数字字段的最小值而不刷新页面
问题描述
我目前在拍卖网站上工作。我有一个表单,如果用户提出新的出价,新的出价会通过 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;
}
}
问题是一个人可以输入低于当前最高出价的出价,这是您不应该被允许的。当新的最高出价得到更新时,一个人可以输入的最低出价仍然是起始价格,因为我不确定如何使用 ajax 帖子返回的新最高值来更新表单中的最小值新的最高价。
我绝对知道我应该使用 javascript 而不是 php 来更新表单中的最小值,我只是不知道该怎么做,因为我对 javascript 很陌生。
解决方案
要使用 JavaScript 更改输入字段的值,您可以使用如下内容:
document.getElementById('newbid').value = valueReturnedFromAjax;
你只需要用valueReturnedFromAjax
你得到的新值替换。PHP 只给输入值它的初始值,所以它会被覆盖。
推荐阅读
- sql - 如何根据记录查找重复的外键
- swift - 点击时推送通知未重定向
- asp.net - ASP.NET Core - 基于动态策略的授权
- java - 通过 SSL 连接 postgresql 时使用“Verify-full”的开销
- python - Python 3:在没有 NumPy 的情况下获取关于该矩阵中某个点的矩阵(列表列表)的对角元素
- javascript - 如何防止物品被拖到手机上
- php - Laravel 错误:此集合实例上不存在属性 [名称]
- telemetry - 使用 OpenTelemetry 设置 Jaeger
- ruby-on-rails - Rails 6 cookie 没有在 devlopment 中更新(只有 firefox 和 Chrome)
- python - Django中的下载按钮选项