所以我是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>
我得到一个&#34; 200 OK&#34; chrome中的状态代码,但$ _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>
答案 0 :(得分:0)
我自称没有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>
答案 1 :(得分:0)
Issue 1 :
目标网页Proj-HOME.php/
这意味着index.php
index.html
或Proj-HOME.php
的文件
我猜您要发布到Proj-HOME.php/
页面。如果是这样,请删除文件名后面的/
,即单独使用此Proj-HOME.php
Note 1 :
尝试在Proj-HOME.php
中打印一些变量并尝试查看ajax成功事件,以便确保指向正确的页面。
Note 2 :
检查是否包含jquery库以使此事件有效,还尝试在页面源中使用这些代码,以便确保在页面中呈现这些代码。