如何将JSON对象传递到通过模态窗口调用的PHP文件

How to pass JSON object to PHP file called through the modal window

本文关键字:窗口 模态 调用 文件 PHP JSON 对象      更新时间:2023-09-26

我有下面的javascript,它创建json对象并运行良好,但我想将此对象传递到从模式窗口调用的php文件中,以供下一个进程使用。

<script type="text/javascript">
$(document).ready(function(){
    $('a.edit').click(function(){
    var myrowID = $(this).data('rowid');
    var sfid = $(this).data('sfid');
    var company = $(this).data('company');
    var dealerclass = $(this).data('dealerclass');    
    $(".modal-body #mysfid").val(sfid);
    $(".modal-body #mycompany").val(company);
    $(".modal-body #mydealerclass").val(dealerclass);
    var myObject = {};
    myObject.sfid = sfid;
    myObject.company=company;
    var myString = JSON.stringify(myObject);
    var obj = jQuery.parseJSON(myString);
    $(".modal-body #myjobject").val(obj.sfid);
    });
});

从这里我不知道如何将它传递到php文件。在那里我可以使用json_decode函数来获取需要处理的数据。如果这种方式不正确,那么请建议任何其他替代方式来实现这一点。请帮帮我。谢谢你的帮助。

以下是引导程序HTML 中来自模态的调用

<a class="btn btn-success" href="../BootLogin/Sales/updateprocess.php">Approved</a>

updateprocess.php文件中的最新更新,但仍然没有显示。

$_POST['obj'];

echo'var dump';var_dump($_POST);

    $jsondata=$_POST['obj']; //sets all data curiously to null, bug ?
    $data = json_decode($_POST['obj']);
    echo 'decoded data';
    print_r($data);
    echo 'END';
    exit();  

这是用于发布JSON 的jquery脚本

<script type="text/javascript">
$(document).ready(function(){
    $('a.edit').click(function(){
    var myrowID = $(this).data('rowid');
    var sfid = $(this).data('sfid');
    var company = $(this).data('company');
    var dealerclass = $(this).data('dealerclass');    
    $(".modal-body #mysfid").val(sfid);
    $(".modal-body #mycompany").val(company);
    $(".modal-body #mydealerclass").val(dealerclass);
    var myObject = {};
    myObject.sfid = sfid;
    myObject.company=company;
    var myString = JSON.stringify(myObject);
    var obj = jQuery.parseJSON(myString);
    $(".modal-body #myjobject").val(obj.sfid);
    $.post("updateprocess.php");
    });
});

我已经测试了文件的路径,但仍然(0)

我的updateprocess.php现在有以下代码

$_POST['obj'];

echo$_POST['obj'];

echo'var dump';

    var_dump($_POST);
    //$jsondata=$_POST['obj']; //sets all data curiously to null, bug ?
    //$data = json_decode($_POST['obj']);
    //var_dump($data);
    echo 'decoded data';
   // print_r($data);
    echo 'END';
    exit();  

这是输出。

var dumparray(0){}解码数据结束

我已经按照建议更新了,但显示仍然是(0)

<script type="text/javascript">
$(document).ready(function(){
    $('a.edit').click(function(){
    var myrowID = $(this).data('rowid');
    var sfid = $(this).data('sfid');
    var company = $(this).data('company');
    var dealerclass = $(this).data('dealerclass');    
    $(".modal-body #mysfid").val(sfid);
    $(".modal-body #mycompany").val(company);
    $(".modal-body #mydealerclass").val(dealerclass);
    var myObject = {};
    myObject.sfid = sfid;
    myObject.company=company;
    var myString = JSON.stringify(myObject);
    var obj = jQuery.parseJSON(myString);
    $(".modal-body #myjobject").val(obj.sfid);
    }); 
});     
    var dataString = 'obj=' +obj
$.ajax({  
    type: 'POST',  
    url: 'updateprocess.php',  
    data: dataString,  
    success: function() {  
    console.log('POST successful.');
    }  
});
</script> 
Updated Javascript Ajax code.
<script type="text/javascript">
var passSFID;
$(document).ready(function(){
    $('a.edit').click(function(){
    var myrowID = $(this).data('rowid');
    var sfid = $(this).data('sfid');
    var company = $(this).data('company');
    var dealerclass = $(this).data('dealerclass');    
    $(".modal-body #mysfid").val(sfid);
    $(".modal-body #mycompany").val(company);
    $(".modal-body #mydealerclass").val(dealerclass);
passSFID = sfid;
    $('a.approve').click(function(){
        var postData = passSFID;
        alert(postData);       // Data prints at this point as required
$.ajax({
    type: "POST",
    datatype: "json",
    data: {mydata:postData},
    url: "backend.php",
    success: function(data){
        console.log('Data Passed');
    },
    error: function(e){
        console.log("Data passed failed");
    }
});
    });
});
});
</script>

您可以使用post处理json并返回您需要的

您可以使用$.post()将json post到您的PHP文件中,并让它解析$_post数据:

http://api.jquery.com/jQuery.post/

你看起来没有正确张贴。试试这个,它会登录到控制台,告诉你已经正确张贴了。我假设您的obj变量就是您想要发布的名称为"obj"的变量?

var dataString = 'obj=' +obj
$.ajax({  
  type: 'POST',  
  url: 'updateprocess.php',  
  data: dataString,  
  success: function() {  
    console.log('POST successful.');
  }  
});

现在updateprocess.php应该能够获得$_POST['obj']变量。