POST 变量永远不会被设置

Posted

技术标签:

【中文标题】POST 变量永远不会被设置【英文标题】:POST variables are never set 【发布时间】:2021-09-11 04:54:14 【问题描述】:

我有 2 个输入的表单,国家名称和国家评级 (0-5) 和提交按钮以添加国家。单击按钮时,它会执行 addCountry 函数。 我总是收到一条错误消息,我不知道为什么 $_POST['country'] 和 $_POST['ratings'] 没有显示。 函数如下所示:

 <script>
 function addCountry()  
 var $country="country";
 var $ratings="ratings";
  
$.ajax(  
          
type:"POST",  
url:"../actions/addCountry.php",  
data: $country: "country", $ratings: "ratings" ,  
success:function(result)  
    alert(result);  
  
  
);

 </script>

php 脚本应该获取国家名称和等级,它看起来像这样:

<?php  
if(isset($_POST['country']) && 
isset($_POST['ratings']))

$country= $_POST['country'];
$ratings = $_POST['ratings'];

 echo $country;
 echo "is country. You rated it: ";
 echo $ratings;

else
    echo "Error";

 ?>  

html 看起来像这样:

<head>
 <link rel="stylesheet" href="../styles/styles.css">
 <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
 <script type="text/javascript"src= "../actions/mapData.php"></script>
 <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery 
 3.1.1.min.js"></script>  
 </head>

 <body>
  <div id="map" style="width: 90%; height: 20%;"></div>
 </body>

<body>
<form autocomplete="off" method="POST">
<div class="autocomplete" style="width:100%;">
<input id="country" type="text" name="country" placeholder="Country">
<label for="ratings"> Rate this country: </label>
<select id="ratings" name="ratings"> 
  <option value="one"> 1 </option>
  <option value="two"> 2 </option>
  <option value="three"> 3 </option>
  <option value="four"> 4 </option>
  <option value="five"> 5 </option>
</select> 
</div>
 <input type="submit" id="add" value="Add Country" onclick="addCountry()"/> 
</form>

【问题讨论】:

错字。您正在发送名称以美元符号开头的密钥,并在从 _POST 读取时省略它们 @Quentin 谢谢。我有另一个问题。如何将值从 传递到 ajax 数据 你有向后的键和值: country: $country, ratings: $ratings @Aplexas $("#country").val() 也可以使用$("form").serialize()获取所有表单字段。 【参考方案1】:

问题出在你的脚本上。

<script>
 function addCountry()  
 var $country="country";
 var $ratings="ratings";
  
$.ajax(  
          
type:"POST",  
url:"../actions/addCountry.php",  
data: country: $country, ratings: $ratings ,  
success:function(result)  
    alert(result);  
  
  
);

 </script>

传递给页面的数据格式为name : value,而您输入错误。

【讨论】:

以上是关于POST 变量永远不会被设置的主要内容,如果未能解决你的问题,请参考以下文章

永远不会设置contentInsetAdjustmentBehavior

POST 请求的 GENERAL_REQUEST_ENTITY 期间的错误导致 ASP .NET 会话状态永远不会被解锁

tableView:cellForRowAtIndexPath: 永远不会被调用

静态变量初始化代码永远不会被调用

如何选择永远不会被拉到存储库的文件? [重复]

添加到 UIScollView 的 UIImageViews 永远不会被释放,内存泄漏?