0

我有以下创建 json 对象并且工作正常的 javascript,但我想将此对象传递给从模态窗口调用的 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'];

回声'var转储'; 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'];

回声 $_POST['obj'];

回声'var转储';

    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) { } 解码数据END

我已按照建议进行了更新,但显示仍为 (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>
4

2 回答 2

0

您可以使用 $.post() 将 json 发布到您的 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']变量了。

于 2013-08-28T16:43:53.357 回答
0

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

于 2013-08-28T16:45:47.910 回答