繁体   English   中英

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>

我自称没有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>

Issue 1 :

目标页面Proj-HOME.php/这意味着命名为文件index.phpindex.html内部Proj-HOME.php

我猜您正在尝试将页面发布到Proj-HOME.php/ 如果是这样,请在文件名后删除/ ,即仅拥有像这样的Proj-HOME.php

Note 1 :

尝试在Proj-HOME.php打印一些变量,并尝试在ajax成功事件中查看,以便确保您指向的页面正确。

Note 2 :

检查是否包括了使该事件起作用的jquery库,还尝试在页面源代码中使用这些代码,以确保可以在页面中呈现这些代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM