使用Ajax/jQuery时的php表单提交
我正在尝试创建类似于现场拍卖的东西,我使用Ajax/jQuery基本上刷新嵌入页面以显示任何数据库更改(例如新的出价),这一切都是可行的,但是,当尝试添加表单以创建出价时,表单不会提交,如何创建与嵌入页面相对应的表单并相应地更新数据库 我所尝试的是:使用Ajax/jQuery时的php表单提交,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我正在尝试创建类似于现场拍卖的东西,我使用Ajax/jQuery基本上刷新嵌入页面以显示任何数据库更改(例如新的出价),这一切都是可行的,但是,当尝试添加表单以创建出价时,表单不会提交,如何创建与嵌入页面相对应的表单并相应地更新数据库 我所尝试的是: auctions.php: <?php if(isset($_POST['100k'])) { echo "Bidded!"; } ?> <div id="auctions">Loading Auctions, please
auctions.php:
<?php
if(isset($_POST['100k'])) {
echo "Bidded!";
}
?>
<div id="auctions">Loading Auctions, please wait...</div>
<script type="text/javascript">
setInterval(function()
{
$.ajax({url:"/embeddedauctions.php", type:"GET", async:true, cache:false, success:function(result)
{
$("#auctions").html(result);
}});
},1000);
</script>
<?php
if(isset($_POST['field_name']) && ($_POST['field_name']==100K) ) {
echo "Bidded!";
}
?>
<div id="auctions">Loading Auctions, please wait...</div>
<script type="text/javascript">
setInterval(function()
{
$.ajax({
url:"/embeddedauctions.php",
type:"post",
async:true,
dataType:'html',
data:'field_name=100k'
cache:false,
success:function(result)
{
$("#auctions").html(result);
}});
},1000);
</script>
正在加载拍卖,请稍候。。。
setInterval(函数()
{
$.ajax({url://embeddedauctions.php),类型:“GET”,异步:true,缓存:false,成功:函数(结果)
{
$(“#拍卖”).html(结果);
}});
},1000);
embeddedauctions.php
<?php
if(isset($_POST['100k'])) {
echo "Bidded!";
}
?>
<table class="table table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Start Price</th>
<th>Buy Now</th>
<th>Current Bid</th>
<th>Bid</th>
</tr>
</thead>
<tbody>
<?php
$query = $db->query('SELECT * FROM auctions WHERE active = 1 ORDER BY endTime ASC') or die(mysqli_error($db));
$num = $query->num_rows;
if($num > 0) {
foreach($query as $row) {
$name = $row['name'];
$startPrice = $row['startPrice'];
$buyNow = $row['buyNow'];
$currentBid = $row['currentBid'];
echo '
<form action="/auctions.php" method="post">
<div id = "container">
<tr>
<td>'.$name.'</td>
<td>'.$startPrice.'</td>
<td>'.$buyNow.'</td>
<td>'.$currentBid.'</td>
<td><input type="submit" class="btn btn-xs btn-success" name="100k" value="Bid +£100k"></td>
</tr>
</form>
';
}
}
?>
</tbody>
</table>
名称
起价
立即购买
当前出价
投标
有没有办法在auctions.php上成功提交表单,目前当我点击提交按钮时它什么都不做,谢谢
删除URL开头的斜杠。我发现从embeddedauctions.php中删除并添加表单标签解决了这个问题
<form action="/auctions.php" method="POST">
<div id="auctions">Loading Auctions, please wait...</div>
<script type="text/javascript">
setInterval(function()
{
$.ajax({url:"/embeddedauctions.php", type:"GET", async:true, cache:false, success:function(result)
{
$("#auctions").html(result);
}});
},1000);
</script>
</form>
正在加载拍卖,请稍候。。。
setInterval(函数()
{
$.ajax({url://embeddedauctions.php),类型:“GET”,异步:true,缓存:false,成功:函数(结果)
{
$(“#拍卖”).html(结果);
}});
},1000);
拍卖。php:
<?php
if(isset($_POST['100k'])) {
echo "Bidded!";
}
?>
<div id="auctions">Loading Auctions, please wait...</div>
<script type="text/javascript">
setInterval(function()
{
$.ajax({url:"/embeddedauctions.php", type:"GET", async:true, cache:false, success:function(result)
{
$("#auctions").html(result);
}});
},1000);
</script>
<?php
if(isset($_POST['field_name']) && ($_POST['field_name']==100K) ) {
echo "Bidded!";
}
?>
<div id="auctions">Loading Auctions, please wait...</div>
<script type="text/javascript">
setInterval(function()
{
$.ajax({
url:"/embeddedauctions.php",
type:"post",
async:true,
dataType:'html',
data:'field_name=100k'
cache:false,
success:function(result)
{
$("#auctions").html(result);
}});
},1000);
</script>
正在加载拍卖,请稍候。。。
setInterval(函数()
{
$.ajax({
url:“/embeddedauctions.php”,
类型:“post”,
async:true,
数据类型:'html',
数据:'field_name=100k'
cache:false,
成功:功能(结果)
{
$(“#拍卖”).html(结果);
}});
},1000);
服务器页面(embeddedauctions.php)将前几行更改为两行
<?php
if(isset($_POST['field_name']) && ($_POST['field_name']==100K) ) {
echo "Bidded!";
}
?>
有一个ID为“auctions”的div,因为@gaurav说有一个auctions ID,我添加了exit;但是表单一开始甚至不提交,但是当我直接访问embeddedauctions.php时,它都可以工作,但是每次对数据库进行新的输入或更新时,它都需要被auctions.php访问才能更新。您的HTML代码无效,您不能将表单
作为表
的子元素–表单
必须遍历整个表
,或者完全放在td
元素中。当我直接访问embeddedauctions.php时,表单在其内部工作是不正确的,你不知道浏览器将如何处理它,所以请修复它。好的,我已经更改了它,但是问题仍然存在。从现在起我将使用表外的表单,谢谢。为什么要使用没有输入文本的表单?为什么不把它做成一个按钮,并将一个ajax请求附加到该按钮的点击事件上呢?