这是我的php脚本
switch($x[0]){
case 'categorias' :
$_POST['step'] = 'categorias';
$_POST['pais']=$_POST['pais'];
$_POST['method']=1;
?><script>
window.location.href = "<?php echo $url ?>?step=categorias";
</script><?
break;
case 'corredores':
$_POST['step'] = 'corredores';
$_POST['pais']=$_POST['pais'];
$_POST['method']=1;
?><script>
window.location.href = "<?php echo $url ?>?step=corredores";
</script><?
break;
default: //do something ;
}
当我尝试这样做时,我正在丢失我使用POST ['']变量发送的值,
任何人都可以帮我解决这个问题,我尝试使用php header()
选项,但它生成的标头已经发送错误,
所以我使用了javascript
任何人都可以帮助我解决这个问题吗
提前致谢
答案 0 :(得分:2)
已在此处回答jQuery - Redirect with post data
var redirect = 'Your Url here';
$.redirectPost(redirect, {x: 'example', y: 'abc'}); // your parametters
// jquery extend function
$.extend(
{
redirectPost: function(location, args)
{
var form = '';
$.each( args, function( key, value ) {
form += '<input type="hidden" name="'+key+'" value="'+value+'">';
});
$('<form action="'+location+'" method="POST">'+form+'</form>').appendTo('body').submit();
}
});
答案 1 :(得分:1)
正如评论中所述,$_POST
不应手动设置,而是通过提交form
生成。
您可以将values
添加到网址中,如下所示:
switch($x[0]){
case 'categorias' :
$step = 'categorias';
$pais = $_POST['pais'];
$method = 1;
?><script>
window.location.href = "<?php echo $url ?>?step=$step&pais=$pais&method=$method";
</script><?
break;
case 'corredores':
$step = 'corredores';
$pais = $_POST['pais'];
$method = 1;
?><script>
window.location.href = "<?php echo $url ?>?step=$step&pais=$pais&method=$method";
</script><?
break;
default: //do something ;
如果您必须在代码的其余部分中使用$_POST
,则可以在$ url处执行此类操作。
$_POST['pais'] = $_GET['pais'];
等等。
或者,将$_POST
引用替换为$_REQUEST
。