首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据人将姓名和姓氏分开

使用数据人将姓名和姓氏分开
EN

Stack Overflow用户
提问于 2015-03-19 11:34:06
回答 2查看 325关注 0票数 0

我使用数据表存储所有的名称和姓氏,因为我从MySQL数据库表中检索。

当有人输入家教教师的名字姓氏并单击“显示家教”时,showTutor()将被调用。

代码语言:javascript
复制
<input list="tutorData" name="tutors" id="tutorToShow">
<datalist id="tutorData">
    <?php
    $sql = "SELECT name, surname FROM tutors ORDER BY surname ASC";
    if (!$res = $link->query($sql)) {
        trigger_error('error in query ' . $link->error);
    } else {
        while ($row = $res->fetch_assoc()) {
            $name = $row['surname'];
            $sName = $row['name'];
            ?>

            <option value="<?php echo "$sName $name" ?>" >
                <?php
            }
        }
        ?>
</datalist>
<input type="button" value="Weergeven" onclick="showTutor();">

我的数据列表被填满了,并且工作得很完美。现在:当调用showTutor时,所以当单击按钮时:

代码语言:javascript
复制
function showTutor(){
   var tut = document.getElementById("tutorToShow").value;
}

这给了我一些像约翰·史密斯或玛丽·简的面团。

问题出在上,当我用ajax重新加载显示的家教div时,我需要从数据库中检索导师的ID。

所以我绝对需要这个SQL:

代码语言:javascript
复制
SELECT ID
FROM tutors
WHERE name LIKE '$name%'
AND surname LIKE '$surname%'

现在我只需要把名字分开。

换句话说,如何从列ID、名称、姓氏的表中检索ID,而不知道名称和姓氏之间的分隔?

约翰?史密斯:简单,第一个单词是名字,第二个单词是姓氏。

玛丽·简·面团:现在呢?

我想添加一个逗号分开两个名字,但这不是很时髦。

另一种选择是向我的数据库中添加一个列,该列在一个记录中具有两个名称,但当需要添加新的导师时,这将是一个麻烦。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-02 20:04:26

奥利几周前帮我聊天,很抱歉耽误了我的时间。

代码语言:javascript
复制
<input list="tutorData" name="tutors" id="tutorToShow">
<datalist id="tutorData">
    <?php
    $sql = "SELECT name, surname, id FROM tutors ORDER BY surname ASC";
    if (!$res = $link->query($sql)) {
        trigger_error('error in query ' . $link->error);
    } else {
        while ($row = $res->fetch_assoc()) {
            $name = $row['surname'];
            $sName = $row['name'];
            $id = $row['id'];
            ?>

            <option value="<?php echo "$sName $name" ?>" data-id="<?php echo $id; ?>">
                <?php
            }
        }
        ?>
</datalist>
<input type="button" value="Show" onclick="showTutor();">

基本上,我只添加了一个数据id,然后编写了这个javascript:

代码语言:javascript
复制
<script>
    function showTutor() {
        var tut = document.getElementById("tutorToShow").value;
        var list = document.getElementById("tutorData");
        var length = list.options.length;
        var id;
        for (var i = 0; i < length; i++) {
            var eachTutor = list.options[i].value.toLowerCase();
            if (tut === eachTutor) {
                id = list.options[i].getAttribute('data-id');
            }
        }
    }
</script>

我现在有了导师的身份,没有分开任何名字。我还使用ajax将其发布到php页面,但这与问题无关。

再次感谢那些帮助我的人。

票数 0
EN

Stack Overflow用户

发布于 2015-03-19 11:46:25

在将数据分配到元素之前执行此操作。

代码语言:javascript
复制
if (strpos($sName, ' ') != false) {
    // if above string position of space isn't false,
    // explode the string at the space into an array of
    // individual names.
    $sName = explode(' ', $sName);
    echo $sNames[0];
    echo $sNames[1];
    // you will need to look at foreach loop and counting the array length
}

尝尝这个。

代码语言:javascript
复制
<datalist id="tutorData">
<?php
$sql = "SELECT name, surname FROM tutors ORDER BY surname ASC";
if (!$res = $link->query($sql)) {
    trigger_error('error in query ' . $link->error);
} else {
    while ($row = $res->fetch_assoc()) {
        $surname = $row['surname'];
        $first_names = $row['name'];
        if (strpos($first_names, ' ') != false) {
            /*
               if above string position of space isn't false,
               explode the string at the space into an array of
               individual names.
            */
            $first_name = explode(' ', $first_names); // EG: Paul John
            $name1 = $first_name[0]; // Paul
            $name2 = $first_name[1]; // John
            /* 
               you will need to look at foreach loop and counting
               the array length  
            */
    }

    ?>
    <option value="<?php echo $name1 . ' ' . $name2 . ' ' . $surname" ?>" >
    <?php
    }
}
?>
</datalist>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29143526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档