Php 在表单中修改JSON并通过jQuery发回
我使用以下代码通过PHP获得一些JSON数据:Php 在表单中修改JSON并通过jQuery发回,php,jquery,arrays,json,Php,Jquery,Arrays,Json,我使用以下代码通过PHP获得一些JSON数据: $sURL = "https://SOMEURL"; $aOptions = array( 'http' => array( 'header' => "Content-type: application/json", 'method' => 'POST', ), ); $sContext = stream_context_create($aOptions); $sResult
$sURL = "https://SOMEURL";
$aOptions = array(
'http' => array(
'header' => "Content-type: application/json",
'method' => 'POST',
),
);
$sContext = stream_context_create($aOptions);
$sResult = file_get_contents($sURL, false, $sContext);
$aItems = json_decode($sResult, true);
foreach($aItems as $key=>$value)
{
if ($key == "data")
{
foreach ($value as $arritem => $arrcont)
{
foreach ($arrcont as $subarritem => $subarrcont)
{
if ($subarrcont['ItemId'] == $sItemID)
{
$aItem = $subarrcont;
}
}
}
}
}
最后我有一个数组$aItem,它包含所有JSON信息,如下所示:
(
[ItemId] => consumable_item_1
[ItemClass] => Consumables
[CatalogVersion] => 1
[DisplayName] => Consumable Item 1
[Description] => Item demonstrating usage-based consumables
[VirtualCurrencyPrices] => Array
(
[VC] => 500
)
[Consumable] => Array
(
[UsageCount] => 3
)
)
现在,我有了一个HTML/PHP表单,这些数据被填充到文本框中,他们可以修改它们。
它们还可以填充一些空文本框,因为该数组没有可能包含的所有信息(例如,其中可能包含另一个数组或第二个ID)
我在页面底部有一段代码,当你点击一个按钮时,它会执行一个PHP脚本
<script>
$(document).ready(function(){
$('.btn').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
// Response div goes here.
alert("Data saved");
});
});
});
</script>
$(文档).ready(函数(){
$('.btn')。单击(函数(){
var clickBtnValue=$(this.val();
var ajaxurl='ajax.php',
数据={'action':单击BtnValue};
$.post(ajaxurl、数据、函数(响应){
//这里是反应组。
警报(“保存的数据”);
});
});
});
现在我的问题是,如何使用表单中的更新信息修改现有数组,以及如何在jQuery脚本的$.post中传递它。根据您的解释,您已经用PHP数据填充了HTML表单。用户处理完数据(修改或不修改)后,您必须将thas数据发送回PHP脚本(ajax.PHP)以处理此问题,而不是像您目前所做的那样只发送按钮的值,您应该发送整个表单,如下所示:
<script>
$(document).ready(function(){
$('.btn').click(function(){
var ajaxurl = 'ajax.php',
data = $('form').serialize();
$.post(ajaxurl, data, function (response) {
// Response div goes here.
alert("Data saved");
});
});
});
</script>
$(文档).ready(函数(){
$('.btn')。单击(函数(){
var ajaxurl='ajax.php',
数据=$('form')。序列化();
$.post(ajaxurl、数据、函数(响应){
//这里是反应组。
警报(“保存的数据”);
});
});
});
现在,在ajax.php中,您可以使用用户修改的数据。
如果JavaScript不能像这样工作:< /P>,您也可以考虑使Ajax函数可退避。
Javascript
<script>
$(document).ready(function(){
$('form').submit(function (event){
event.preventDefault();
$.ajax({
url: $(this).attr('action');
method: $(this).attr('method');
data: $(this).serialize();
success: function (response) {
// Response div goes here.
alert("Data saved");
}
});
});
});
</script>
$(文档).ready(函数(){
$('form')。提交(函数(事件){
event.preventDefault();
$.ajax({
url:$(this.attr('action');
方法:$(this.attr('method');
数据:$(this).serialize();
成功:功能(响应){
//这里是反应组。
警报(“保存的数据”);
}
});
});
});
HTML
<form action="ajax.php" method="post">
...
</form>
...