PHP和MYSQL AJAX-自动填充多个文本字段

PHP和MYSQL AJAX-自动填充多个文本字段,php,mysql,ajax,Php,Mysql,Ajax,我正在使用Nodstrum提供的优秀教程。我正在尝试用PHP、MYSQL和AJAX自动填充多个文本字段。我有一个PHP脚本,下面是返回结果的代码行: echo '<li onClick="fill(\''.$result->name.'|'.$result->id.'\');">'.$result->name.'</li>'; 如果我“确定”错误消息,我最终会看到文本字段中显示的两个值,因此我相信我正在正确地从MySQL检索这些值。我感谢任何人能为我提

我正在使用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);
}

您传递的成为thisValue的值为null或未定义。您可以在盲目尝试拆分之前测试此参数(拆分函数仅对字符串有效)


感谢您抽出时间回答这篇文章。我已经实现了您的建议,并且收到了错误消息:error:“undefined”为null或者不是这行代码上的对象--myvalues=thisValue.split(“|”);
thisValue
可以得到什么,您可以发出警报或记录此信息吗?将其粘贴到此处。Rakesh,如果我确定错误消息,这两个值都会出现在MSIE调试器工具中抛出错误的字段中:第32行错误:“undefined”为null或不是对象,并且它引用myvalues=thisValue.split(“|”);Thankssyntax错误-myValues=thisValue.split。。。这一行应该以var开头,以分号结尾,去掉后面两行的花括号。James,我尝试了你的建议,非常感谢你花时间提出你的建议。我仍然收到相同的错误消息。Undefined为null或不是--var myvalues=thisValue.split(“|”)上的对象;谢谢杰姆斯,非常感谢你抽出一天的时间列出我所看到的评论!我真的很感激你告诉我怎么做,而不是为我做。我根据你的评论做了一些修改,脚本工作得很好!再次感谢你告诉我怎么做!
function fill(thisValue) {
    myvalues=thisValue.split('|');

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

    window.setTimeout("$('#suggestions').hide();", 200);
}
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);
}