2 つの選択ボックスをチェーンし、mysql テーブルにある値を使用して動的に入力される次の ajax スニペットがあります。
これは、callType 列が私のデータ列 SPG_CallType に見られるような数値である場合にうまく機能します。これを変更して、アルファベット文字に接触する列を使用すると、それが壊れます。これは、コードが数値だけで機能するためだと思いますか? スニペットのその部分を更新して、英字または数値を受け入れるにはどうすればよいですか?
if (isset($_GET['key'])) {
$key = $_GET['key'];
switch ($key) {
case 'callTypeSelect':
$select = new SelectBox('Repair Type?','Choose a category');
$res = mysql_query('SELECT DISTINCT SPG_CallType FROM ' . DB_TABLE . ' ORDER BY SPG_CallType ASC');
$callTypes = array();
for ($i = 0; list($callType) = mysql_fetch_row($res); $i++) {
$callTypes[] = $callType;
$select->addItem($callType, 'brandSelect-' . $callType);
}
header('Content-type: application/json');
echo $select->toJSON();
break;
default:
if (strpos($key, 'brandSelect-') === 0) {
$callType = str_replace('brandSelect-', '', $key);
$resBrands = mysql_query('SELECT SPG_Brand FROM ' . DB_TABLE
. ' WHERE SPG_CallType = ' . mysql_real_escape_string($callType) . ' ORDER BY SPG_Brand ASC');
$select = new SelectBox('Choose a Manufacturer', 'Pick a brand');
for ($i = 0; list($brand) = mysql_fetch_row($resBrands); $i++) {
$select->addItem($brand, 'result-' . $brand . '-' . $callType);
}
header('Content-type: application/json');
echo $select->toJSON();