Я хочу получить данные из базы данных mysql, используя php и jquery ajax. «process.php» – это php-файл, который подключается к базе данных и получает данные mysql. Он работает, когда он запускается отдельно, но при вызове с использованием ajax он не работает. Может кто-то, пожалуйста, поможет исправить ошибку? Вот мой html-файл:
<html> <head> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ function showRoom(){ $.ajax({ type:"POST", url:"process.php", data:{action:showroom}, success:function(data){ $("#content").html(data); } }); } showRoom(); }); </script> </head> <body> <div id="content"></div> </body> </html>
Вот мой файл process.php
<?php $link=mysqli_connect("localhost","root","raspberry","homebot"); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error(); $action=$_POST["action"]; if($action=="showroom"){ $query="SELECT * FROM user"; $show=mysqli_query($link,$query) or die ("Error"); while($row=mysqli_fetch_array($show)){ echo "<li>$row['name']</li>"; } } ?>
в<?php $link=mysqli_connect("localhost","root","raspberry","homebot"); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error(); $action=$_POST["action"]; if($action=="showroom"){ $query="SELECT * FROM user"; $show=mysqli_query($link,$query) or die ("Error"); while($row=mysqli_fetch_array($show)){ echo "<li>$row['name']</li>"; } } ?>
В вашем аякс-вызове есть две синтаксические ошибки:
$(document).ready(function(){ function showRoom(){ $.ajax({ type:"POST", url:"process.php", data:{action:"showroom"}, success:function(data){ $("#content").html(data); } }); } showRoom(); });
Имейте в виду, что ajax jQuery ожидает объект как параметр. Внутри объекта синтаксис
{ key : value }
У вас был тип = «POST», который корректен в декларативном синтаксисе, но неверен при определении ключа объекта.
Во-вторых, свойство данных вышеупомянутого объекта также должно быть объектом. Таким образом, вместо action = выставочного зала это должно быть
{action:"showroom"}
вы ошиблись в своем коде:
echo "<li>$row['name']</li>";
Это должно быть:
echo "<li>".$row['name']."</li>";
Попробуй это…