Передача параметров из JS / Jquery на одной странице в PHP на другую - PullRequest
1 голос
/ 19 сентября 2011

Я ищу самый простой способ использовать метод POST для передачи параметров из javascript / jquery на одной странице в PHP на другой странице.

Следует отметить, что обе страницы являются шаблонами PHP для страниц WordPress., но я думаю, это не должно иметь значения.

Буду признателен за примеры кода с обеих сторон.

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011
$.ajax({
  type: 'POST',
  url: 'otherpage.php',
  data: $('form').serialize(), //you may want to give id of the form which contains elements you want to POST
  success: function(){
      //code on success
  },
  dataType: 'html'
});

редактировать 1 если вы хотите указать свои параметры для отправки, то используйте:

$.ajax({
  type: 'POST',
  url: 'otherpage.php',
  data: {
          paramname1 : "put_param_value_here",
          paramname2 : "put_param_value_here",
          paramname3 : "put_param_value_here"
        },
  success: function(){
      //code on success
  },
  dataType: 'html'
});

Редактировать 2 : если вы хотите опубликовать на странице только свои собственные параметры (без ajax. Простой POST, который откроет страницу, выполните следующее)

function postToUrl(url, params, newWindow)
{
    var form = $('<form>');
    form.attr('action', url);
    form.attr('method', 'POST');
    if(newWindow){ form.attr('target', '_blank'); }

    var addParam = function(paramName, paramValue){
        var input = $('<input type="hidden">');
        input.attr({ 'id':     paramName,
                     'name':   paramName,
                     'value':  paramValue });
        form.append(input);
    };

    // Params is an Array.
    if(params instanceof Array){
        for(var i=0; i<params.length; i++){
            addParam(i, params[i]);
        }
    }

    // Params is an Associative array or Object.
    if(params instanceof Object){
        for(var key in params){
            addParam(key, params[key]);
        }
    }

    // Submit the form, then remove it from the page
    form.appendTo(document.body);
    form.submit();
}

позвоните так: -

postToUrl('otherpage.php', {paramname1: "value_here", paramname2: "value_here"});

код взят из ответа на JavaScript пост-запрос как форма отправки

2 голосов
/ 19 сентября 2011

Вы можете использовать параметры строки запроса

$.post("anotherPage.php?param1=one&param2=two",function(data){ 
console.log("data"); //prints yahoo
console.log("success");    
});

или

$.post("anotherPage.php",{param1:'one',param2:'two'},function(data){ 
console.log("data"); //prints yahoo
console.log("success");    
});

на странице php

$param1=$_POST['param1'];//gives you one
$param2=$_POST['param1'];//gives you two

echo "yahoo";

РЕДАКТИРОВАТЬ

из комментария нет ответа JamesSmith, я думаю, что вы хотите перенаправить на другую страницу в этом случае

Page1.php

<script>
location.href='page2.php?param1=one&param2=two'; // this causes the page to redirect
</script>

page2.php

<h1><?php echo $_GET['param1']; ?></h1>
<h2><?php echo $_GET['param2']; ?></h2>

еще одно редактирование

Вы можете создать форму на странице 1 и опубликовать ее на странице 2

<form action="page2.php" method="post">
<input name="param1" type="text" />
<input name="param2" type="text" />
<input name="submit" value="Submit" type="submit" />
</form>

в page2.php

<h1><?php echo $_POST['param1']; ?></h1>
<h2><?php echo $_POST['param2']; ?></h2>
1 голос
/ 19 сентября 2011

вы можете делать то, что вы хотите сделать в ajax в соответствии с ответом

$.post('server.php', ({parm:"1"}) function(data) {
    if (data == 1){
        window.href = "your redirecting location";
    }
    else
    {
        //do something
    }
});
...