JQuery $ .post - 将值返回给PHP变量

时间:2013-07-05 01:24:31

标签: php jquery

我正在尝试使用带有中间php脚本的JQuery $.post将动态隐藏输入的值发回到同一页面。返回正确的值并显示在下面的代码中的警告中,但我无法通过$_POST获取页面中的值:

$(document).ready(function() {

$('.case').click(function() {  
var caseId = $(this).find('input:hidden').val();
$.post("scripts/get_case.php", { case_pk: caseId },
   function(data) {
     alert("Respond: " + data);
   }); 
});

在同一页上:

$caseId = $_POST['case_pk'];

echo $caseId;

中介php页面(get_case.php):

<?php
$case = $_POST['case_pk'];
echo $case;
?>

场景是:

我有div按钮,这些按钮是根据页面cases中mysql db中vmd.php的数量动态生成的。这些动态生成的div按钮中的每一个都包含一个隐藏的输入,其中包含大小写id(case_pk)的相应值。单击其中一个按钮,我想根据vmd.php中的案例ID运行mysql查询。所以我的理解是我需要通过ajax将隐藏字段中的case_pk传递回同一页面(vmd.php)并将其放入我可以在查询中使用的php变量中。

2 个答案:

答案 0 :(得分:1)

由于两个PHP示例中的第一个似乎没有被使用,因此不完全清楚您将打算将值发布到哪个页面。任何东西。然而,这两个例子中的第二个似乎正在起作用。您已成功对另一个服务器端资源(get_case.php)执行AJAX POST,该资源已成功接收该值并回显相同的值(给定客户端alert()为的描述表现得如预期的那样。)

因此,在这种情况下,您的服务器端功能可以由get_case.php启动,然后任何相关的响应都可以发送回页面并由回调函数中的客户端代码处理(您目前在alert())。

请记住,没有必要将值发布到&#34;当前页面。&#34;您可以POST到任何服务器端资源。实际上,您可能会发现最好在生成UI的页面(在本例中为&#34;当前页面&#34;在这种情况下)和更像是用于AJAX调用的Web服务的页面之间分离服务器端资源,并仅返回数据(在这种情况下为get_case.php)。这可以使组织代码变得更加容易,而不会有杂乱的条件来确定是否应该呈现UI或JSON。

因此,成功的操作顺序可能是这样的:

  1. 用户在浏览器中加载page1.php
  2. page1.php执行一些服务器端操作并呈现UI。
  3. 在UI中有一些JavaScript代码,可以对page2.php进行AJAX调用。
  4. page2.php执行一些服务器端操作并呈现JSON数据。
  5. JavaScript代码接收JSON数据并执行一些客户端操作。

答案 1 :(得分:1)

我认为你的“帖子”就像是

<input id="case_pk" name="case_pk" type="hidden" value="">

所以你应该成功:

$('#case_pk').value(data);

以“重置/更改”该隐藏输入的值。