Ajax发布成功(显示在浏览器中),但$_post中没有数据
Ajax post successful (shown in browser) but no data in $_POST
所以我相对来说是PHP/Javascript/HTML的初学者。以下是我的页面:我有几个表格,每个表格都有一个下拉列表。然后,我有一个按钮(在代码中,它位于表单之外)来提交所有上述表单。这是我的按钮和它的功能。
<input type="button" name="order_button" onclick="myFunction()" value="Place Order">
<script>
function myFunction() {
<?php
$conn = new mysqli("localhost", "root", "secret", "judal");
$all_cards_q = "SELECT * from card";
$result = $conn->query($all_cards_q);
while ($row = $result->fetch_assoc())
{ ?>
$.ajax({
type: "POST",
url: "Proj-HOME.php",
data: $('<?php echo $row["cardForSub"]; ?>').serialize(),
success: function() {
alert("WOOO SUCCESS!");
}
});
//return false;
//document.getElementById('<?php echo $row["cardForSub"]; ?>').submit();
<?php
}
?>
}
</script>
我在chrome中得到了一个"200 OK"状态代码,但$_POST不包含任何内容(我在发布后使用print_r)。我已经被困了两天,试图找到一个答案,但找不到一个完全符合我情况的答案。提前感谢!
**编辑:**这是我的表单代码:
<div class="container">
<div class="row">
<div class="col-md-9">
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
?>
<div class="col-sm-4 col-lg-4 col-md-4">
<div class="thumbnail">
<!-- <img src="http://placehold.it/320x150" alt=""> -->
<img src="pics/cards/<?php echo $row["cardName"] ?>.jpg" alt="" border=3 height=150 width=100>
<div class="caption">
<font color=#3333FF size=5 face="Century Gothic">
<p><?php echo $row["cardName"] ?></p>
</font>
<p></p>
<h4><b>Php <?php echo $row["cardPrice"] ?>.00</b></h4>
</div>
<div class="ratings">
<p class="pull-right"> <?php echo rand(10,100) ?> reviews</p>
<p>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
</p>
<font color=#000000><p>Quantity: </p></font>
</div>
<form action="javascript:true;" name="<?php echo $row["cardForSub"]; ?>" id="<?php echo $row["cardForSub"]; ?>">
<select class="form-control" name="<?php echo $row["cardNickname"]; ?>" id="<?php echo $row["cardNickname"]; ?>">
<?php
$counter = 0;
while($counter <= $row["stock"]) {
?>
<option><?php echo $counter ?></option>
<?php
$counter++;
}
?>
</select>
</form>
</div>
</div>
<?php
}
}
else echo "No cards in database.";
?>
</div>
</div>
Issue 1 :
目标页面Proj-HOME.php/
是指Proj-HOME.php
中名为index.php
或index.html
的文件
我猜你是想在Proj-HOME.php/
页面上发帖。如果是这样,请删除文件名后的/
,即像这样单独使用Proj-HOME.php
Note 1 :
尝试在Proj-HOME.php
中打印一些变量,并尝试在ajax成功事件中查看,以便确保指向正确的页面。
Note 2 :
检查您是否包含jquery库以使此事件正常工作,还可以尝试在页面源中使用这些代码,以便确保这些代码在页面中呈现。
我声称没有jQuery技能,但对我来说,函数似乎有问题~你调用$(document.getElementById()).serialise()
的地方-我认为你不需要document.getElementById
。此外,将html、javascript和php稍微分开会更整洁。。。而且,正如@Raj所指出的那样,url更应该以斜杠开头,而不是以斜杠结尾。
<html>
<head>
<title>Form/ajax</title>
<script>
<?php
$conn = new mysqli('localhost', 'root', 'secret', 'judal');
$all_cards_q = 'SELECT * from card';
$result = $conn->query( $all_cards_q );
while( $row = $result->fetch_object() ){
$cfs_id=$row->cardForSub;
}
$conn->close();
echo "var cfs_id='{$cfs_id}';";
?>
function myFunction() {
$.ajax({
type: 'POST',
url: '/Proj-HOME.php',
data: $( cfs_id ).serialize(),
contentType: 'application/json;charset=utf-8',
success: function() {
alert('WOOO SUCCESS!');
}
});
}
</script>
</head>
<body>
<form>
<input type='button' name='order_button' onclick='myFunction()' value='Place Order'>
</form>
</body>
</html>
相关文章:
- 下载使用POST数据动态生成的文件
- 如何从HTTP上下文对象中获取Post数据
- 可以't通过Angular$resource POST数据
- 如何在IE CORS中发送POST数据(使用XDomainRequest)
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 追加 POST 数据 javascript
- Angular 中的 HTTP 服务将 POST 数据作为请求正文的键发送,没有值
- 从chrome扩展创建一个包含POST数据的链接
- 如何使用AJAX打印PHP POST数据?(没有jQuery)
- Javascript POST数据进入GET PHP数组
- PHP没有从$.ajax获取POST数据
- 为什么cgi-POST数据被篡改和截断
- Ajax XML的POST数据值发生更改
- POST数据没有'不包含任何表单数据
- firebug:如何在firebug控制台中发送POST数据
- IE11不发送HTTP POST数据
- 使用POST数据引用jsfiddle.net
- 保存每个POST数据的Chrome扩展
- 如何将PHP Post数据获取到jquery ajax请求中
- 如何在选择Select Box值时将参数作为POST数据传递,这将重新加载同一页面