2

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();
4

1 に答える 1

0

@roryok が質問に答えましたが、コメントにクレジットを与える方法はありませんか?

$select->addItem('\'' . $callType . '\'', 'brandSelect-' . $callType);
于 2012-08-25T11:08:14.900 に答える