У меня была похожая проблема, и вот как я наконец решил ее (т.е. не более $cluetip
неопределенная ошибка msg).
Во-первых, вот мой сценарий, который может быть похож на ваш. На странице у меня есть
<div id="sel_area"></div>
Это пусто, и идея состоит в том, чтобы использовать jquery / ajax для динамического генерирования желаемого <select><option>...</option>...</select>
HTML-кода для вставки в #sel_area
выше, например,
$('#sel_area').html(data);
где данные - это сгенерированный тег HTML select
.
Однако я думаю, что моя проблема в том, что я не настраивал результат динамически генерируемых данных в формате JSON или XML и затем обрабатывал его соответствующим образом. Вместо этого я лениво возвращал результат как есть, как обычный текст / html. Когда я продолжал получать $cluetip
- неопределенная ошибка, независимо от того, что я пытался, я решил использовать alert(data)
, чтобы увидеть, что был возвращен. Увы, там я увидел своими глазами, что данные - это не только то, что я повторил, но к ним добавлена вся HTML-страница! Решение было тогда ясно для меня. Не поддаваясь возвращению данных в протоколе XML или JSON, я внес следующие незначительные изменения для решения проблемы:
Изменение в удаленном скрипте, который генерирует тег <select>
. Последний последний был
echo "$select_tag";
Я изменил это на
echo "$select_tag~";
То есть я добавил конечный ~ (тильда), который служит разделителем между выводом моей строки select_tag
и HTML-страницей, которая, как я теперь знал, будет добавлена, нравится мне это или нет.
Изменение в методе jQuery / AJAX.
Я заменил строку
$('#sel_area').html(data);
со следующими строками:
data_list = data.split('~');
$('#sel_area').html(data_list[0]);
Вот, пожалуйста. Это делает трюк. Метод split позволил мне легко отделить желаемое select_tag
от данных, потому что я мудро вставил ~ (тильду) в качестве разделителя полей, который, как я знал, не является ни частью результата select_tag
, ни страницей HTML, к которой нужно добавить система. Надеюсь, это поможет.