-1
以下のPHPはうまくいきます。あなたが任意の変数を表示するためにPHPにprint_r
またはecho
を追加するときにまだそれは次のようなエラーが送信されます。echo json_encodeがprint_rと競合しており、PHPのecho
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 83 of the JSON data
。
function Administrator(){
$(document).on('change',function(e){
if(e.target.tagName ==="SELECT"){
ChangingSelect="Changing|"+e.target.id+"|"+$('#' +e.target.id + ' option:selected').text();
//console.log(ChangingSelect);
$.ajax({
type: "POST",
url: "ChangingTool.php?ChangingSelect="+ChangingSelect})
.done(function(data){
var Mydata = JSON.parse(data);
console.log("hi");
$.each(Mydata, function (i,item) {
var SelectedDataArr=Mydata[i].selected.split('|').filter(function(x){return (x !== (undefined || null || ""));});
$('#'+Mydata[i].id).empty();
$.each(SelectedDataArr,function(j,item){
$('#'+Mydata[i].id).append('<option value="' + j + '">'+ SelectedDataArr[j]+'</option>');
});
});
});
}
});
}
がどのようにこの問題を克服するために、次のように
foreach ($ChangingMap as $key => $value){
$SqlVariables[$key]=array(
'id' => $ChangingMap[$key]['element_id'],
'action' => $ChangingMap[$key]['e_action'],
'record' => $ChangingMap[$key]['e_record'],
'table' => $ChangingMap[$key]['e_table'],
'ascendant' => $ChangingMap[$key]['ascendant'],
'where' => $ChangingMap[$key]['descendant']
);
if ($ChangingMap[$key]['status']==$Basic_Status[0]){
for($i=0;$i<sizeof($Variable_holder);$i++){
$carrier=explode("|", $ChangingMap[$key][$Variable_holder[$i]]);
$SqlVariables[$key][$Query_Variable_holder[$i]]=$carrier[0];
}
$SqlVariables[$key]['where']=$Query_Destination[0];
}
$SqlQuery[$key]= $SqlVariables[$key]['action'].' '.$SqlVariables[$key]['record'].' FROM '.$SqlVariables[$key]['table'].' WHERE ' .$SqlVariables[$key]['where'].'="'.$ChangingArr[1].'"';
$SqlArray[]=array(
'id' => $ChangingMap[$key]['element_id'],
'sql'=> $SqlQuery[$key]
);
$ClearStr='';
$test=CallData('Changing',$SqlArray[$key]['id'],$SqlArray[$key]['sql'],$ClearStr);
}
}
//print_r($test);
echo json_encode($test);
}
javascript関数はありますか?変数をテストする能力が制限されています。
私はPHP全体を見ることはありません(ありがとうございます)、私はいくつかの文字がPHPスクリプト全体に残っていると思います...あなたの開発者ツールでは、厳密にJSONオブジェクトだけですか? – Salketer
PHPレスポンスから有効なJSON文字列を取得していることを確認してください。 – muaaz
JSONレスポンス( 'print_r($ test)')をデバッグしたいのであれば、ブラウザ開発ツール(通常は 'F12'ショートカット)を使ってレスポンスを調べることをお勧めします。 – xander