Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在单独的div中显示多个MySQL记录_Php_Jquery_Mysql - Fatal编程技术网

Php 在单独的div中显示多个MySQL记录

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

我正在尝试创建一个自动建议系统来查询MySQL,并在用户键入时向用户显示可能的选项。在单击其中一个选项之前,一切正常。当通过jQuery发出警报时,将传递一个包含所有查询记录的文本块,而不仅仅是被单击的记录

这是PHP:

$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>';