Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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
Ajax、PHP和MySql_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Ajax、PHP和MySql

Ajax、PHP和MySql,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我对Ajax有问题。更改选择值时不会发生任何情况 为了打印结果,我有一个id为textHint的div 以下是我的选择: <form> <select id="choix" name="choix" onchange="showUser(this.value)"> <div class="tutorial_list"> <?php $db = m

我对Ajax有问题。更改选择值时不会发生任何情况

为了打印结果,我有一个id为textHint的div

以下是我的选择:

<form>              
    <select id="choix" name="choix" onchange="showUser(this.value)">
        <div class="tutorial_list">
            <?php 
                $db = mysql_connect('localhost', 'root', 'root'); 
                mysql_select_db('Projet',$db); 

                $sql = 'select NomPromo, NumPromo from Promo';
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

                while ($data = mysql_fetch_array($req)){
                     echo'<option value="'.$data['NumPromo'].'">'.$data['NomPromo'].'</option>';
                }
            ?>
        </div>
    </select>
</form>

这是我的剧本:

<script>
    function showUser(str) {
        if (str == "") {
           document.getElementById("txtHint").innerHTML = "";
           return;
           } else { 
                if (window.XMLHttpRequest) {
                    // code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp = new XMLHttpRequest();
                } else {
                    // code for IE6, IE5
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                    }
                };
                xmlhttp.open("GET","data.php?q="+str,true);
                xmlhttp.send();
        }
    }
</script>

函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
};
open(“GET”,“data.php?q=“+str,true”);
xmlhttp.send();
}
}
下面是我的data.php:

<?php 

    $q = intval($_GET['q']);

    $db = mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('Projet',$db);

    $sql = "select Nom, Prenom from User where Groupe ='".$q."'";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    while ($data = mysql_fetch_array($req)){
         echo $data['Nom'].' '.$data['Prenom'];
    }
?>  

我不明白
里面在做什么

错误


[错误]引用错误:找不到变量:$(fonction (匿名)php教授:75

可能是因为一些原因。a) jquery库未正确加载b)路径可能不正确。检查这个

我做了一些小改动,你可以试试这个

<form>              
  <select id="choix" name="choix">
    <div class="tutorial_list">
      <?php 
      $db = mysql_connect('localhost', 'root', 'root'); 
      mysql_select_db('Projet',$db); 

      $sql = 'select NomPromo, NumPromo from Promo';
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

      while ($data = mysql_fetch_array($req)){
           echo'<option value="'.$data['NumPromo'].'">'.$data['NomPromo'].'</option>';
      }
      ?>
    </div>
  </select>
</form>

JS

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<script>
  $(document).ready(function(){
    $('#choix').change(function(){
      var q= $('#choix').val();
      $.ajax({url:"data.php?q="+q,cache:false,success:function(result){
        $('#txtHint').html(result);
      }});
    });
  });
</script>

$(文档).ready(函数(){
$('#choix')。更改(函数(){
var q=$('#choix').val();
$.ajax({url:data.php?q=“+q,cache:false,success:function(result){
$('#txtHint').html(结果);
}});
});
});

[注意
mysql.*
函数从PHP5.5开始就被弃用了。使用
mysqli.*
PDO
]

mysql.*
函数从PHP5.5开始就被弃用了(在PHP7中被完全删除),如果可以的话,您应该这样做。您应该选择另一个API,如
mysqli\u*
或PDO-请参阅。在更改SelectBox中的值时,检查
showUser
方法是否被调用。哦,是的,当这一切正常时,我将更改它。我会使用mysqlidoos,它会生成任何错误吗?在PHP中,检查错误日志(,)或JavaScript(请参阅浏览器中的控制台)。有一个错误:
[error]TypeError:null不是对象(计算
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText”)行上的readystateChange
。getElementById(“txtHint”).innerHTML=xmlhttp.responseText它不起作用有错误
$('#choix')。更改(函数(){
他找不到变量$“[error]ReferenceError:找不到变量:$(函数匿名)prof.php:75”我已经更新了我的答案。请仔细阅读@FlorianSLCan你能为我做一件事吗。暂时在data.php页面中。删除所有代码。然后只
,看看会发生什么。你已经接近了。@Floriansl当我进入开发工具并按下data.php时,它告诉我有我想要打印的值。因此我的data.php工作ks,打印此文件时出错