Ajax、PHP和MySql
我对Ajax有问题。更改选择值时不会发生任何情况 为了打印结果,我有一个id为textHint的div 以下是我的选择: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
<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,打印此文件时出错