を作成します。私が必要とフォームがある特定のJSON形式
{
"suggestions": [
{ "value": "United Arab Emirates", "data": "AE" },
{ "value": "United Kingdom", "data": "UK" },
{ "value": "United States", "data": "US" }
]
}
私はこのPHPコードで何を得る:
header("Content-type: application/json");
require 'connect.inc.php';
$mysql = mysqli_connect("$db_host", "$db_username", "$db_pass", "$db_name");
$name = isset($_POST['query']) ? $_POST['query'] : "";
$sql = "SELECT MedicineName, MedicineID FROM medicinetypes WHERE MedicineName LIKE '%$name%'";
$res = mysqli_query($mysql, $sql);
$res = mysqli_fetch_all($res, MYSQLI_ASSOC);
$reply = array();
$reply['suggestions'][]=$res;
echo json_encode($reply);
mysqli_close($mysql);
はこれです:
{"suggestions":[[{"MedicineName":"Amoxil 500","MedicineID":"1"},{"MedicineName":"Panadol","MedicineID":"2"},{"MedicineName":"Farmako3","MedicineID":"3"},{"MedicineName":"Beer","MedicineID":"4"},{"MedicineName":"Farmako4","MedicineID":"5"},{"MedicineName":"hjkki","MedicineID":"61"},{"MedicineName":"Amoxil 1","MedicineID":"577"},{"MedicineName":"Amoxil 502","MedicineID":"580"},{"MedicineName":"Amoxil 56","MedicineID":"582"},{"MedicineName":"Amoxil 600","MedicineID":"583"},{"MedicineName":"\u03b5\u03bb\u03b1 \u03bc\u03bf\u03c5 \u03bd\u03c4\u03b5","MedicineID":"586"}]]}
それは私が必要とする形式ではないので、余分なことが問題を引き起こしています。どうやってこれを正しく行うことができますか?
に
$reply['suggestions'][]=$res;
を変更してみてください: https://stackoverflow.com/questions/15678355/remove-extra-square-bracket-from-json – guillefix@guillefixは、これは、JSONが解析されるときに問題を回避するためです(JSで解析されていると仮定します)。問題は、データをソースで修正することです。 – Quentin
'MedicineName!== value'と' MedicineID!== data' –