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));
}
フォームを提出する上では、それは、Ajax誤差関数に行きます。検証コードスニペットを削除すると、それは成功関数に移動します。私は、json_decode連想配列の要素で何もできません。私は問題が何であるか理解していない。
EDIT
こんにちは、私はとても残念です。コメントで述べたように、問題を引き起こしていたのはタイプミスでした。助けてくれてありがとう!
'あなたが持っている($ noOFims ==は、 '')'言及している場合、この '$ noOFims'変数? –
typo ... '$ noOFims!= $ noOfSims' – charlietfl
実際にjson_decode()から返される内容を確認するにはecho '$ j_data'を試してください –