Php 从3个下拉菜单中获取数据,并根据这3个参数从数据库中填充4个

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不会返回任何内容。我认为这些变量不会出现在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'");

while($row = mysql_fetch_array($result1)){
     $display_string = "<option value=\"".$row['materie']."\">". $row['materie'] ."</option>";
}
     echo $display_string;
?>

您可以使用以下几种方法调试代码

  • 您可以先打印($result1),然后查看SQL是否返回您想要的结果。如果没有,请尝试处理查询

  • $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);
        }
    }