我在jQuery中有一个onclick和post函数,我将两个变量传递给我的PHP函数。
这些功能如下所示:
$(".pop-save-us").click(function(){
console.log(checkbox_events);
console.log(user_id);
// alert("Button save pressed");
$.post('/user/AddRemoveBrandUsers', { brands: JSON.stringify(checkbox_events),userId:user_id} , function(data) {
if(checkbox_events.length==0)
{
alert("No changes were made.")
}
else {
if (data == "ok") {
alert("ok");
}
}
});
});
第一个值是以下格式的数组:
console.log(checkbox_events)提供以下输出:
[2: "checked", 4: "checked", 5: "checked"]
我执行`JSON.stringify(checkbox_events)将我的数组转换为JSON格式并将其传递给我的PHP函数,如下所示:
public function AddRemoveBrandUsersAction()
{
$brands = $this->getRequest()->getPost("brands");
$userId = $this->getRequest()->getPost("userId");
for($i=0;$i<count($brands);$i++)
{
// how can I now access each value of the brands array
// I need both key and value... How do I access them ??
}
die("ok");
}
答案 0 :(得分:1)
使用以下代码:
if(!empty($brands) && sizeof($brands) > 0){
foreach($brands as $key => $value){
...
}
}
答案 1 :(得分:0)
你应该使用
json_decode(%your_string_with_json%)
函数获取json字符串的内部php表示。因此,您将能够操纵它(获取数据,设置数据)。使用调试器也非常有用。
$a = json_decode('{"foo": 123, "bar": null, "baz": "qwerty", "arr": ["hello", "world"]}', true);
会给你和数组,你可以在代码中轻松使用它:
array (
'foo' => 123,
'bar' => NULL,
'baz' => 'qwerty',
'arr' =>
array (
0 => 'hello',
1 => 'world',
),
)
例如:
$b = $a['foo'] // b = 123
$b = $a['arr'][0] // b = hello
然后,您应该观察从请求中收到的值,并根据它使用if ... else ...等。