1
我想在php中进行表单验证并发送任何错误给ajax调用。 我把表单输入作为一个数组与名称索引从ajax调用到php控制器。我用json_decode()解码它。现在我想访问每个元素并为它们进行验证。无法验证json_decode关联数组元素
JS:
function init_order()
{
var noOfSims = $('#a_noofsims').val();
var network = $('#a_network').val();
var plan = $('#plan').val();
var o_data={};
o_data["a_noOfSims"]=noOfSims;
o_data["a_network"]=network;
o_data["plan"]=plan;
js_data=JSON.stringify(o_data);
$.ajax({
url:"<?php echo site_url('sim_orders_ajax/add')?>/",
type:"POST",
dataType:"JSON",
data:{order_data:js_data},
success:function(data)
{
alert(data.status);
},
error:function (jqXHR, textStatus, errorThrown)
{
alert("Error in adding order");
}
});
PHP:
public function add()
{
$order_data=$_POST['order_data'];
$j_data=json_decode($order_data, true);
$noOfSims = $j_data["a_noOfSims"];
$network = $j_data["a_network"];
$plan = $j_data["plan"];
if($noOfSims=='')
$data="Error";
else
$data="No Error"
echo json_encode(array("status" => $data));
}
在提交表单,它进入阿贾克斯误差函数。如果我删除验证代码片段,它会转到成功功能。我无法对json_decode关联数组中的元素进行任何操作。我不明白问题是什么。
编辑
您好,我很抱歉。正如评论中提到的那样,这是造成问题的错字。谢谢您的帮助!
'如果($ noOFims == '')',你必须提到这一点'$ noOFims'变量? –
错字...'$ noOFims!= $ noOfSims' – charlietfl
尝试回显'$ j_data',看看实际返回json_decode() –