如何通过ajax post响应到PHP

问题描述:

我有一个页面index.php - >它有php代码,jquery代码和php代码都在一个。如何通过ajax post响应到PHP

$.ajax({ 
       url: url, 
       method: "post", 
       contentType: "application/json", 
       dataType: "json", 
       data: JSON.stringify(inputData), 
       success: function(data, status, xhr) { 
        if (data.result) { 

        // I want to store this data.result and pass it to PHP code below. 
         $("#some-form").submit(); 
        } else { 
        // some code here 
        } 
       }, 
       error: function(data, status, xhr) { 
        // Show a modal informing user of invalid 
         information 

       } 
}) 

我在data.result的成功块中看到正确的数据。 我想这个值传递给我下面的PHP代码:

<?php 
    function buildRedirectUrl($url) { 


    return $url . 
       "&email=" . trim($_POST["email"]) .      
       "&state=" . trim($_POST["state"]) .     
       "&application_code=" . 
       trim($_POST["application_code"]); 


    // I want to add the data.result from success block here 
    // something like : 
    // "&result=" . trim($_POST["data.result"]) . 

    } 

    $redirectUrl = buildRedirectUrl($someUrl); 
    header('Location: ' . $redirectUrl); 
?> 

任何解决方案? 是否可以将数据从ajax调用传递给php? 任何示例都会有所帮助。我发现,访问inputParameters所有例子,但我没有看到任何例子,我怎么能在PHP中使用

+0

我猜,如果你删除'JSON.stringify'如果作品就好了?再说一遍,我不知道你在做什么? – adeneo

+0

我能够做出成功的POST请求。我看到成功块中的正确结果。我想存储响应data.result并在我的PHP代码中访问它。 –

+0

你为什么要这么做?您需要在提交之前将结果存储在'#some-form'中。为什么你会首先在ajax中做任何事情?只需使用inputData提交表单即可。 – Steve

注意:这个代码并不完整,只是一个概念。

我想如果你不得不这样做,

$.ajax({ 
 
    url: url, 
 
    method: "post", 
 
    contentType: "application/json", 
 
    dataType: "json", 
 
    data: JSON.stringify(inputData), 
 
    success: function(data, status, xhr) { 
 
    if (data.result) { 
 
     //following 3 lines are new. 
 
     var elem = $("<input type='hidden' name='ajaxResult' />"); 
 
     elem.val(data.result); 
 
     $("#some-form").append(elem); 
 
     // I want to store this data.result and pass it to PHP code below. 
 
     $("#some-form").submit(); 
 
    } else { 
 
     // some code here 
 
    } 
 
    }, 
 
    error: function(data, status, xhr) { 
 
    // Show a modal informing user of invalid 
 
    information 
 

 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

然后,你可以使用该结果在您的表单提交$POST["ajaxResult"]

+0

它没有给出任何错误,但它给了一个空白值 –

+0

它的工作,我在我的代码中犯了一个错字,非常感谢。 我感谢您的帮助! –

响应您可以动态创建一个表单并提交它像下面

$.ajax({ 
     url: url, 
     method: "post", 
     contentType: "application/json", 
     dataType: "json", 
     data: JSON.stringify(inputData), 
     success: function(data, status, xhr) { 
      if (data.result) { 
       var method = "post"; 
       var action = "site.com/index.php"; 
       var form = document.createElement("form"); 
       form.setAttribute("method", method); 
       form.setAttribute("action", action); 
       var hiddenField = document.createElement("input"); 
       hiddenField.setAttribute("type", "hidden"); 
       hiddenField.setAttribute("name", "field_name"); 
       hiddenField.setAttribute("value", data.result); 
       form.appendChild(hiddenField); 
       document.body.appendChild(form); 
       form.submit(); 

      } else { 
      // some code here 
      } 
     }, 
     error: function(data, status, xhr) { 
      // Show a modal informing user of invalid 
       information 

     } 
})