PHP и MYSQL AJAX - автозаполнение нескольких текстовых полей - PullRequest
0 голосов
/ 10 июня 2011

Я пользуюсь великолепным учебником, предоставленным Nodstrum. Я пытаюсь автозаполнить несколько текстовых полей с помощью PHP, MYSQL и AJAX. У меня есть скрипт PHP, вот строка кода, возвращающая мои результаты:

echo '<li onClick="fill(\''.$result->name.'|'.$result->id.'\');">'.$result->name.'</li>';

Обратите внимание, что я разделяю свои результаты с помощью символа ".

Вот функция, в которой я получаю сообщение об ошибке «Не определено или не является объектом». Я разбиваю значения и использую пайптес в качестве отделения значений от mysql.

function fill(thisValue) {
    myvalues=thisValue.split('|') {
        $('#inputString').val(myvalues[0]);
        $('#email').val(myvalues[1]);
    }
    window.setTimeout("$('#suggestions').hide();", 200);
}

Если я в порядке с сообщениями об ошибках, я в конечном итоге увижу оба значения в текстовых полях, поэтому я считаю, что правильно получаю значения из MySQL. Я ценю любую помощь, которую кто-либо может оказать, чтобы направить меня в правильном направлении, или новую перспективу. Еще раз спасибо, --Matt

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Значение, которое вы передаете и становится thisValue, равно нулю или не определено. Вы можете проверить этот параметр, прежде чем вслепую пытаться его разделить (функция split работает только со строками).

function fill(thisValue) {
    // "value" will always be a string
    var value = thisValue ? String(thisValue) : '';

    // this line will not generate an error now
    var myvalues=value.split('|');

    // but these ones might!  make sure the length of myvalues is at least 2
    if (myvalues.length >= 2) {
      $('#inputString').val(myvalues[0]);
      $('#email').val(myvalues[1]);
    }
    // this might need to go inside the above if
    window.setTimeout("$('#suggestions').hide();", 200);
}
0 голосов
/ 10 июня 2011

Попробуйте это:

function fill(thisValue) {
    myvalues=thisValue.split('|');

    $('#inputString').val(myvalues[0]);
    $('#email').val(myvalues[1]);

    window.setTimeout("$('#suggestions').hide();", 200);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...