jQuery Ajax 在 php 同一页面上传递值 - 更新

问题描述 投票:0回答:1

如何找回:

<div id="test">
  <?php
    if (isset($_POST['sweets']))
    {
      ob_clean();
      echo $_POST['sweets'];
      exit;
    }
  ?>
</div>

<form id="a" action="" method="post">
  <select name="sweets" onchange="change()" id="select1">
    <option >Chocolate</option>
    <option selected="selected">Candy</option>
    <option >Taffy</option>
    <option >Caramel</option>
    <option >Fudge</option>
    <option >Cookie</option>
  </select>
</form>

   <!-- Script -->
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
  function change() {
    var sweets = $("#select1").val();
    $.ajax({
      type: "POST",
      data: { sweets: sweets },
      success: function(data) {
        $("#test").html(data);
      }
    });
  }
</script>

将值传递给 php 字符串:

$string = $_POST['sweets'];
<!-- I'm looking for this: -->

我希望这是可能的。我在 stackoverflow 和 google 上寻找答案,但找不到适合我的目的的答案。

javascript php ajax
1个回答
0
投票

对于同一个页面的ajax/PHP脚本,可以将PHP放在脚本的最前面,当有POST提交数据时以exit结束

为了使其更有意义,您应该返回与您通过 POST 提交的内容相关的内容(这是甜食的类型),作为示例,我们展示其一般定义。我们可以使用 switch,这是用于此目的的常用结构:

switch ($string) {
    case "Chocolate":
        echo "Chocolate is made from cocoa beans, the dried and fermented seeds of the cacao tree";
        break;
    case "Candy":
        echo "Candy is a sweet food made from sugar or chocolate, or a piece of this";
        break;        
    case "Taffy":
        echo "Taffy is a type of candy invented in the United States, made by stretching and/or pulling a sticky mass of a soft candy base";
        break;
    case "Caramel":
        echo "Caramel is made of sugar or syrup heated until it turns brown, used as a flavouring or colouring for food or drink";
        break;
    case "Fudge":
        echo "Fudge is a dense, rich confection typically made with sugar, milk or cream, butter and chocolate or other flavorings";
        break;
    case "Cookie":
        echo "A cookie (American English) or biscuit (British English) is a baked snack or dessert that is typically small, flat, and sweet";
        break;

}
      exit;
    }
  ?>

所以以下是示例代码:

<?php if (isset($_POST['sweets']))
{
//      ob_clean();

$string = $_POST['sweets'];

switch ($string) {
    case "Chocolate":
        echo "Chocolate is made from cocoa beans, the dried and fermented seeds of the cacao tree";
        break;
    case "Candy":
        echo "Candy is a sweet food made from sugar or chocolate, or a piece of this";
        break;        
    case "Taffy":
        echo "Taffy is a type of candy invented in the United States, made by stretching and/or pulling a sticky mass of a soft candy base";
        break;
    case "Caramel":
        echo "Caramel is made of sugar or syrup heated until it turns brown, used as a flavouring or colouring for food or drink";
        break;
    case "Fudge":
        echo "Fudge is a dense, rich confection typically made with sugar, milk or cream, butter and chocolate or other flavorings";
        break;
    case "Cookie":
        echo "A cookie (American English) or biscuit (British English) is a baked snack or dessert that is typically small, flat, and sweet";
        break;

}
      exit;
    }
  ?>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

  <select name="sweets" onchange="change()" id="select1">
    <option value="">Please select</option>
    <option >Chocolate</option>
    <option >Candy</option>
    <option >Taffy</option>
    <option >Caramel</option>
    <option >Fudge</option>
    <option >Cookie</option>
  </select>
<br><br>
<div id="test"></div>

<script>
  function change() {
    var sweets = $("#select1").val();
    $.ajax({
      type: "POST",
      data: { sweets: sweets },
      success: function(data) {
        $("#test").html(data);
      }
    });
  }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.