Php 在单独的div中显示多个MySQL记录
我正在尝试创建一个自动建议系统来查询MySQL,并在用户键入时向用户显示可能的选项。在单击其中一个选项之前,一切正常。当通过jQuery发出警报时,将传递一个包含所有查询记录的文本块,而不仅仅是被单击的记录 这是PHP:Php 在单独的div中显示多个MySQL记录,php,jquery,mysql,Php,Jquery,Mysql,我正在尝试创建一个自动建议系统来查询MySQL,并在用户键入时向用户显示可能的选项。在单击其中一个选项之前,一切正常。当通过jQuery发出警报时,将传递一个包含所有查询记录的文本块,而不仅仅是被单击的记录 这是PHP: $query=$conn->query("SELECT * from Customers where Phone like '%$searchq%' limit 10") or die($conn->error); while($row = mysqli_fetc
$query=$conn->query("SELECT * from Customers where Phone like '%$searchq%' limit 10") or die($conn->error);
while($row = mysqli_fetch_array($query)) {
$fname = $row['FName'];
$lname = $row['LName'];
$add01 = $row['Address 01'];
$add02 = $row['Address 02'];
$suburb = $row['Suburb'];
$state = $row['State'];
$pcode = $row['Postcode'];
$phone = $row['Phone'];
$email = $row['Email'];
$output.= '<div name="firstdiv" class="redata" style="width:auto;text-align:left;text-decoration:none;color:black;">'.$phone.' '.$fname.' '.$lname.' '.$add01.' '.$add02.' '.$suburb.' '.$state.' '.$pcode.' '.$email.'</div>';
echo $output;
$mysqli->close;
最后,我得到的结果将连接所有记录,并将它们全部显示在警报消息框中的一大块中
我需要的是能够单击一个div,并且只对该div的内容发出警报,而不是对整个div发出警报
为了我日渐萎缩的头发,我将非常感谢您的帮助,这几天我一直在拔头发。据我所知,您的html结构如下:
<div id="thirddiv">
<div>text example 1</div>
<div>text example 2</div>
<div>text example 3</div>
...
</div>
$("#thirddiv").find("div").on("click", function() {
clientdets = $(this).text();
alert(clientdets);
});
注意,我在这里使用了id
属性而不是name
属性
另外,可能应该避免使用内联样式。改用单独的css样式表。我想出来了
同时删除了JQuery事件处理程序,并将php部分的最后一行修改为:
echo '<li name="outputerator" class="redata" style="width:auto;text-align:left;text-decoration:none;color:black;border:2px solid green;"onclick="alert($(this).text());">'.$phone.' '.$fname.' '.$lname.''.$add01.''.$add02.' '.$suburb.' '.$state.' '.$pcode.' '.$email.'</li>';
echo'”.$phone.$fname.'.$lname.'.$add01.$add02.'.$substrate.'.$state.$pcode.$email. ”;
并将#Thirddiv
更改为
。
哎呀!:-) 谢谢Miqi180,我接受你关于内联样式的观点,但我只是习惯在开发时这样做,然后在完成后将其全部移动到单独的样式表中。正如我已经说明的那样,div结构目前就是问题所在。有没有一种方法可以将MySQL返回的单个记录传递给您显示的每个子div,这些子div的数量会根据返回的记录数量动态增加/减少?当然有。如果需要在返回任何数据之前发送数据,则可以使用jQuery的load函数或$.post,然后使用回调函数中的.append将divs+内容动态添加到DOM中。关于css,我想这是一个工作风格的问题,但我倾向于认为做你在这里做的事情是双重的工作…:)非常棒,当然也必须有,因为我已经见过很多次这样的事情了。如果你还没有猜到,我是一个新手,现在将开始研究load&append。非常感谢您提供一些指导!好吧,一整天之后,我的境况也没有好转!我认为问题在于php位连接了从mysql中提取的所有记录,并迫使所有记录都被#thirddiv。我需要一种方法来分离记录之间的concat,并将它们传递给动态创建的div,以容纳任意多的记录(模仿列表框的#thirddiv?)并在单击时分别发出警报。有人有什么想法吗?
$("#thirddiv").find("div").on("click", function() {
clientdets = $(this).text();
alert(clientdets);
});
echo '<li name="outputerator" class="redata" style="width:auto;text-align:left;text-decoration:none;color:black;border:2px solid green;"onclick="alert($(this).text());">'.$phone.' '.$fname.' '.$lname.''.$add01.''.$add02.' '.$suburb.' '.$state.' '.$pcode.' '.$email.'</li>';