2011-04-11 189 views
1

原谅我提出一个看似明显的问题,但是我所有的搜索都提供了关于如何使用JS创建POST值的指南,而不是如何抓取(并利用)它们。用javascript抓取POST值

我想要做什么:

step1.php - 形式POST ING以step2.php

step2.php - 也是一种形式,JS抓住一个特定的岗位价值,并做了一些工作,它,然后相应地更新这个新的表格

由于不值得进入的原因,该过程需要是一个2步/ 2页的过程。

显而易见的解决办法就是做这样的事情:

<script type="text/javascript"> 

    function damn_ugly() { 

     var shameful = <?php echo $_POST['desiredDatum']; ?>; 
     do more stuff... 
    } 

</script> 

但似乎有点脏了我。

有没有更好的方法?或者是我真的如此应该做到这一点?

+0

为什么你不能做第一个step1.php页面是动态的,并且对于step2.php做一个ajax post,返回一些javascript函数可以使用的数据?这打破了你'2步/ 2页的过程',但似乎是一个更好的解决方案,如果你不喜欢上面的格式... – g19fanatic 2011-04-11 13:11:38

+0

说实话,统一这两种形式的功能为一个超出了我目前的能力,我是该网站的唯一编码人员。我只是采取了我的第一个犹豫的步骤,将增量JavaScript增强功能添加到强大的PHP基础中,并且非常努力地不咬掉更多的东西。 :-) – Drew 2011-04-11 13:14:17

+0

看看jQuery和他们的一些例子......你会发现它比你想象的要容易得多..一次调用,它将你的数据(被打包成一个JS数组)发送到你的PHP表单(你已经知道如何使用),然后它返回一个JS函数,无论你设置哪些数据从php表单输出。 http://docs.jquery.com/Main_Page – g19fanatic 2011-04-11 13:20:00

回答

4
var postData = <?php echo json_encode($_POST); ?>; 

可以明显改变通过传递一个自定义的数组json_encode包括来自$_POST只有特定的领域。

var desiredDatum = <?php echo json_encode($_POST['desiredDatum']); ?>; 

有没有更好的方式来做到这一点 - 并使用json_encode不管什么保证中所含的POST变量什么也没有将打破(在分配至少不会)。

+0

抱歉密集,但你可以更新你的答案如何? – Drew 2011-04-11 13:06:47

1

POST值正在发送到服务器。一旦提交,只有服务器可以使用这些值。您的示例几乎是您必须“访问”在前一个请求中发送到服务器的POST值的唯一选项。

2

那就是你应该怎么做,JavaScript不能以另一种方式访问​​POST值。

Offcourse可以让它更漂亮一点:让你的php脚本把POST变量放在一个数组中,然后打印出的数组JSON格式。现在你的JavaScript有数组。

0

JS没有访问POST值,它只能检索GET值。但是,由于您使用的是PHP脚本,并且可以将数据传递给JS,为什么不以JSON格式提供JS函数数据?您可以使用PHP的json_encode函数将所有POST值编码为JSON,然后您可以在JS代码中轻松使用它们。如果你使用jQuery的wirite如下代码

$(document).ready(function() { 

var shameful = $('#text1').val(); 

}); 

如果不是

<input type='hidden' name='text1' id = 'text1' value='<?php echo $_POST['desiredDatum']; ?>' /> 

现在:

0

试试这个 在第二步第2页:

设置隐藏文本框页使用jQuery然后

var shameful = document.getElementById('text1').value; 

我希望这是你在找什么。