【问题标题】:Ajax: the script does not send data using the POST methodAjax:脚本不使用 POST 方法发送数据
【发布时间】:2017-12-12 05:54:43
【问题描述】:

编辑

我是这样修改脚本的,但是数据不是通过POST方式传输的

$(document).ready(function(){  
  $('#min_price').change(function(){  
       var price = $(this).val();  
       $("#price_range").text("Product under EUR." + price);  
       $.ajax({  
            url:"/loading-price-range.php",  
            method:"POST",  
            data:{price:price},  
            success:function(data){  
                 $("#product_loading").fadeIn(500).html(data);  
            }  
       });  
  });  
 });     

这是一个简单的 Ajax 脚本,使用 post 方法发送从滑动价格获得的值(产品价格)。

<input type="range" min="0" max="55000" step="200" value="0" id="min_price" name="min_price" />
<span id="price_range"></span>

该脚本似乎正常运行,因为#product_loading 被正确调用并且页面更新,即使它没有显示任何数据。

在“loading-price-range.php”中,我有以下代码 $price = isset ($ _ POST [" price "]); 与 echo 并没有给我任何回报。

【问题讨论】:

  • data: "price=" + price 更改为data: {price : price}。并从中删除所有空格:$ _ POST [" price "].
  • dateType 只是 .ajax 期望接收的。与发送数据无关。 api.jquery.com/jquery.ajax
  • isset() 的使用不正确。您将 $price 的值设为布尔值,而不是发布的值
  • @charlietfl that too ;) 这段代码中有很多错误都会导致问题!
  • @IncredibleHat 字符串数据 vs 对象实际上是完全有效的

标签: javascript php jquery ajax


【解决方案1】:

您可以使用$.post() 明确发布数据,但我认为这不是您的问题所在。

看起来你的 PHP 有一些奇怪的格式。

尝试在 PHP 的开头添加 print_r($_POST); exit;。你得到了什么?我怀疑你发布的所有数据都在那里。

【讨论】:

  • 只打印数组()。
  • 你是如何测试的?您是直接导航到 PHP 脚本还是在 ajax 代码运行后检查网络流量?
  • 我在答案 php 页面的开头设置了“print_r”。要理解,在 loading-price-range.php
  • 是的,这是正确的。如果您直接导航到 php 文件,您应该只会看到 Array (),因为您没有发布任何内容。您需要检查 ajax 发送的 POST 请求以获得任何有价值的东西
  • 我跑了“print_r ($ _ POST ["price"]); exit;"但是什么都没有……什么都没有打印。我不明白为什么价格值没有传输到页面 loading-price-range.php。
猜你喜欢
  • 1970-01-01
  • 2018-10-13
  • 2011-02-21
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
相关资源
最近更新 更多