我对php和SQL非常陌生,所以如果这非常简单,我真的很抱歉。
我的网站有多个div,里面有表名。 HTML的格式为:<p class="listname">(table name)</p>
我正在尝试编写一个函数,以便当用户单击div时,该函数使用innerHTML获取文本,并显示该特定表的内容。
我写的jquery函数是:
$(document).ready(function(){
$(".listname").click(function(){
var x=($(this).html()).toLowerCase(); //this assigns the text in the class listname to the variable x
console.log(x);
$.ajax({
url: 'http://localhost/fullcalendar/events.php',
data: {name:x},
type: "GET",
success: function(json) {
}
});
});
});
我的PHP代码是:
<?php
include 'ChromePhp.php';
ChromePhp::log('php running');
$json = array();
if($_POST['name']!=null)//check if any value is passed else use default value
{
$table=$_GET['name'];
ChromePhp::log($table);
}
else
{
$table= 'event';
ChromePhp::log($table);
}
$requete = "SELECT * FROM `$table` ORDER BY id";
try {
$bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'root', 'root');
} catch(Exception $e) {
exit('Unable to connect to database.');
}
// Execute the query
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// sending the encoded result to success page
echo json_encode($resultat->fetchAll(PDO::FETCH_ASSOC));
?>
首次加载网站时,查询中使用$ table的默认值,并检索数据。但是,当我尝试单击div时,正确的值将传递给php并分配给$ table(我在控制台中检查)但显示的数据是默认表格,即&#39; event&#39;表。
我怎样才能解决这个问题?
PS:我的所有表都在同一个数据库中。
答案 0 :(得分:0)
您正在检查POST数据:
if($_POST['name']!=null)
但是使用GET数据:
type: "GET"
因此$_POST
数组将始终为空,并且if
条件始终为false
。您可能想检查GET数据:
if($_GET['name']!=null)
此代码中还有一些其他问题:
success
回调是空的,所以这个AJAX调用实际上不会在客户端执行任何操作。无论您想要对返回的数据做什么,都需要在success
函数中完成。