我使用数据表存储所有的名称和姓氏,因为我从MySQL数据库表中检索。
当有人输入家教教师的名字和姓氏并单击“显示家教”时,showTutor()将被调用。
<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时,所以当单击按钮时:
function showTutor(){
var tut = document.getElementById("tutorToShow").value;
}这给了我一些像约翰·史密斯或玛丽·简的面团。
问题出在上,当我用ajax重新加载显示的家教div时,我需要从数据库中检索导师的ID。
所以我绝对需要这个SQL:
SELECT ID
FROM tutors
WHERE name LIKE '$name%'
AND surname LIKE '$surname%'现在我只需要把名字分开。
换句话说,如何从列ID、名称、姓氏的表中检索ID,而不知道名称和姓氏之间的分隔?
约翰?史密斯:简单,第一个单词是名字,第二个单词是姓氏。
玛丽·简·面团:现在呢?
我想添加一个逗号分开两个名字,但这不是很时髦。
另一种选择是向我的数据库中添加一个列,该列在一个记录中具有两个名称,但当需要添加新的导师时,这将是一个麻烦。
发布于 2015-04-02 20:04:26
奥利几周前帮我聊天,很抱歉耽误了我的时间。
<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:
<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页面,但这与问题无关。
再次感谢那些帮助我的人。
发布于 2015-03-19 11:46:25
在将数据分配到元素之前执行此操作。
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
}尝尝这个。
<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>https://stackoverflow.com/questions/29143526
复制相似问题