Ajax发布成功(显示在浏览器中),但$_post中没有数据

Ajax post successful (shown in browser) but no data in $_POST

本文关键字:post 数据 浏览器 布成功 成功 显示 Ajax      更新时间:2023-09-26

所以我相对来说是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.phpindex.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>