Php 从3个下拉菜单中获取数据,并根据这3个参数从数据库中填充4个
我需要知道出了什么问题。PHP不会返回任何内容。我认为这些变量不会出现在PHP文件中。请帮我找出哪里出了问题Php 从3个下拉菜单中获取数据,并根据这3个参数从数据库中填充4个,php,javascript,ajax,joomla,Php,Javascript,Ajax,Joomla,我需要知道出了什么问题。PHP不会返回任何内容。我认为这些变量不会出现在PHP文件中。请帮我找出哪里出了问题 <?php defined('_JEXEC') or die; $db = JFactory::getDbo(); $an=$_POST['an']; $fac=$_POST['fac']; $uni=$_POST['uni']; $result1 = mysql_query("SELECT * FROM drv_uni_$uni WHERE an='$an'"); whil
<?php
defined('_JEXEC') or die;
$db = JFactory::getDbo();
$an=$_POST['an'];
$fac=$_POST['fac'];
$uni=$_POST['uni'];
$result1 = mysql_query("SELECT * FROM drv_uni_$uni WHERE an='$an'");
while($row = mysql_fetch_array($result1)){
$display_string = "<option value=\"".$row['materie']."\">". $row['materie'] ."</option>";
}
echo $display_string;
?>
您可以使用以下几种方法调试代码
$display\u string=”“$第[“材料”行]代码>是错误的,您应该有一个如下所示的代码<代码>$display\u字符串=“”$第[“材料”行]代码>。您缺少=
如果有静态变量并包含在主变量中,则显示良好。
而不是使用$\u POST
使用Joomla检索POST数据的方法JRequest::getVar('an')代码>
让我知道我可能能帮助您的结果。这是什么:
drv_uni_$uni
@Edga,如果$uni=1
,它将在sql中写入drv_uni_1
。您能向我们显示您的表架构或/和您看到的任何错误吗?尝试使用包含该变量的查询字符串浏览该文件。如果屏幕上有什么内容,那么错误就在javascript端。问题不在于数据库,因为这个脚本如果有静态变量,并且包含在主脚本中,则显示良好。问题是php文件没有获得变量,JS也没有从php接收回变量。我这样说是因为没有显示任何内容,甚至没有错误。。如何查看JS中的数据是否返回?我不知道这些文件是否好,但是。。我想从3个drodpwon那里得到3个变量。(这是正确的,变量被填充好了)用这3个收集到的inj,我在db中做了一个查询,以显示第四个下拉菜单的数据。希望是清楚的,我做了更改。使用打印功能插入,没有显示任何静态或dinamic值。。。所以我猜当我从last dropwon菜单中选择最后一个参数时,什么都没有发生。我附上一张firebug的照片,希望你能更好地看到正在发生的事情。firebug的响应选项卡中没有任何内容。。。如果你知道做这件事的其他方法,我很乐意听你说。
function getValFromDb() {
var valoare_selectata_uni = document.getElementById('category').value;
var valoare_selectata_fac = document.getElementById('subcategory').value;
var valoare_selectata_an = document.getElementById('an').value;
var url = "modules/mod_data/tmpl/script.php";
var params = 'uni=' + valoare_selectata_uni +
'&fac=' + valoare_selectata_fac +
'&an=' + valoare_selectata_an;
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
AJAX.open("POST", url, false);
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AJAX.onreadystatechange = function() {
if(AJAX.readyState == 4 && AJAX.status == 200) {
var answer = AJAX.responseText;
document.getElementById('materie').innerHTML = answer;
}
};
AJAX.send(params);
}
}