【发布时间】:2013-08-31 20:48:35
【问题描述】:
我有以下 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 转储'; 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'];
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) { } 解码数据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>
【问题讨论】:
-
var myString = JSON.stringify(myObject); var obj = jQuery.parseJSON(myString);嗯,你到底想做什么? -
可能试图克隆对象?为什么?我不知道
-
感谢您抽出宝贵时间来解决我的问题。我只想将 json 对象传递给我的 php 文件以供其他进程使用。我没有在我的 updateprocess.php 文件中的 var_dump(_POST['obj'] 中获得任何数据。它显示 var_dump(0)。任何建议
标签: php javascript jquery