我在从 PHP 填充微调器时遇到问题。我有带有城市和班级的 MySQL 表。我需要从特定的地方上课。城市的 PHP 如下所示:
{"lista":[{"City":"Beograd"},{"City":"Novi Sad"},{"City":"Kragujevac"}]}
当我尝试使用“Novi Sad”中的类填充微调器时,我在 android 中遇到错误
08-09 09:53:37.762: E/Fail 1(28592): java.lang.IllegalArgumentException: Illegal character in query at index 50: http://192.168.1.2/test/test.php?city=Novi%20Sad
如果我打电话给http://192.168.1.2/test/test.php?grad=Novi%20Sad
我的本地主机,我会得到{"lista":[{"Class":"matematika"},{"Class":"informatika"}]}
. 如果我尝试用 City: Beograd 或 Kragujevac 填充微调器,一切正常。我猜这个问题出在诺维和萨德之间的空白处。
从 spinner1(Cities) 填充 spinner2 的 URL:
str_grad1=spinner1.getSelectedItem().toString();
String url="http://192.168.1.2/test/test.php?grad="+str_grad1;
编辑:这也是 PHP 脚本
$con = mysqli_connect($host, $user, $pwd, $db);
if(mysqli_connect_errno($con)) {
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
$sql = "SELECT Predmet FROM lista where City='".$_GET['grad']."'";
$result = mysqli_query($con, $sql);
$rows = array();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[] = $row;
}
mysqli_close($con);
$arr = array_flip(array_map('serialize', $rows));
$lista = array_map('unserialize', array_flip($arr));
echo json_encode((object) array('lista' => array_values($lista)));