我对测试应用程序有这个小问题。
目前看:
<form>
<span>1:Question goes here </span>
<input type=hidden name=true_1 value=10>
<input type=hidden name=false_1 value=20>
<input type=hidden name=target_1 value=color>
<select name=answer_1[]><option>blah</option><option>etc</option></select>
<span>2:Question goes here </span>
<input type=hidden name=true_2 value=40>
<input type=hidden name=false_2 value=20>
<input type=hidden name=target_2 value=size>
<select name=answer_2[]><option>blah</option><option>etc</option></select>
</form>
目前我使用的是一个爆炸的脚本(“_”,$ get);所以我可以用自己的属性处理每个问题。
目前的做法
1.从数据库中获取问题。 (问题,目标,真,假,答案)
2.浏览它们并创建一个类似于我上面写的所有问题的形式
3.当我发布时我会爆炸以单独获取每个问题属性
4.通过它们来评估答案是正确还是错误并给出分数
我想要做的就是把它变成oop
1.为每个问题创建一个对象并分配自己的属性(问题,真,假,目标,答案)foreach($ question)$ q [1] = new question();
2.使用$ q []供用户回答。
3.用户回答后接收$ q [],然后$ _POST。
希望我能说明这一点。但是对我来说,保持动态的所有事情非常重要,所以我需要包含隐藏的字段。 它可行吗?
答案 0 :(得分:2)
您可以将json数据类型用于此类任务(假设您的对象只存储数据,而不是方法,也不需要__sleep,__ wakeup等)。
<input name="fooBar" value="<?php echo json_encode(/*some_array_with_data*/);?>">
表单POST后,您可以执行类似
的操作$_POST['fooBar'] = json_decode($_POST['fooBar']);
并开始迭代生成的数组。
NB。因为json_encode导致字符串包含像“这样的字符,所以你也应该使用base64_encode,url_encode或类似的东西。