Probleme getElementsByTagName('name').item(0)
php developper
-
Florian_A Messages postés 95 Statut Membre -
Florian_A Messages postés 95 Statut Membre -
Bonjour,
le code ci dessous permet d'extraire une liste de ma base commancant par le mot que je viens de le taper dynamiquement et d'afficher les detail une fois je valide par le bouton definition
Par contre lorsque j appui sur le bouton j ai bien un resultat, mais la fonction de saisie semi automatique ne fonctionne pas ca c est sur. N y aurait il pas un truc a rajouter au niveau de PHP, genre une bibliotheque XML, ou un truc du genre
l'erreur javascript est au niveau de la ligne 87 du fichier test.php
*************** LE FICHIER test.php
<html>
<head>
<title>XMLHTTPREQUEST GRE WORDS QUERY</title>
<style type="text/css">
div.prop {
height: auto;
width: 150px;
//overflow: auto;
border: 1px solid #666;
background-color: #ccc;
padding: 8px;
font-size: 10px;
font-family:verdana;
font-weight: bold;
visibility:hidden;
}
input{
border-right : 1px solid #669;
border-top : 1px solid #669;
font-size : 10px;
border-left : 1px solid #669;
color : #000;
border-bottom : 1px solid #669;
font-family : verdana, arial, helvetica, sans-serif;
background-color : #f3f3f9;
}
</style>
<script type="text/javascript">
var isWorking = false; // est-ce que le canal est occupé
function getHTTPObject() {
var xmlhttp;
@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject(); // on crée un objet HTTP
function treatquery(){ // la requête
if (!isWorking && http) {
ch = document.send.abr.value;
if (ch.length>1){
http.open("GET", "treat.php?abr=" + escape(ch), true);
http.onreadystatechange = handleHttpResponse;
isWorking = true;
http.send(null);
}
if ((ch.length<3) && (document.getElementById('res').style.visibility == 'visible'))
document.getElementById('res').style.visibility = 'hidden';
}
}
function handleHttpResponse() { // traitement de la demande
if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
var xmlDocument = http.responseXML;
87 => var res = xmlDocument.getElementsByTagName('name').item(0).firstChild.data;
var elements = res.split(";");
var result;
if (elements[0] != ''){
result = "<font color=\"darkblue\">Vous voulez dire...</font><br />";
for (var i=0;i<elements.length;i++){
result = result + "<a style=\"text-decoration:none;color:red;\" href=\"javascript:setQuery('" + elements[i] + "');\">" + elements[i] + "</a><br />";
}
result = result + "<hr /><center><a href=\"https://www.digencia.ch\" style=\"text-decoration:none;color:darkgrey;\">pub ici</a></center>";
document.getElementById('res').innerHTML = result;
document.getElementById('res').style.visibility = 'visible';
}
else document.getElementById('res').style.visibility = 'hidden';
isWorking = false;
}
}
}
function setQuery(ch){
document.getElementById('abr').value = ch;
document.getElementById('res').style.visibility = 'hidden';
}
</script>
</head>
<body>
<form autocomplete="off" name="send" style="display:inline; position: relative;" action="" method="POST">
<div style="display:inline; position: relative;">
<input type="text" id="abr" name="abr" value="<?php echo $_POST['abr'];?>" style="width: 150px;font-family:verdana; font-size:8pt;color:darkblue;" onKeyUp="treatquery();" />
<input type="submit" value="definition" style="font-family:verdana; font-size:8pt;" name="submit" />
<div id="res" style="background-color:white;position: absolute; top: 22px;left: 0px;" class="prop" onMouseMove="this.style.visibility='visible';" onMouseOut="this.style.visibility='hidden';">
</div>
</div>
</form>
<?php
if ((isset($_POST)) && ($_POST['abr']!='')){
include('db.php');
// open connection to the database
$conn = mysql_connect(HOST, USER, PASS);
mysql_select_db(DB);
$q = 'SELECT reference FROM article WHERE reference = \''.$_POST['abr'].'\';';
$r = mysql_query($q);
if (mysql_num_rows($r)>0){
$res = mysql_fetch_assoc($r);
$def= $res['reference'];
}
else $def = 'no definition known...';
echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b>'.$_POST['abr'].'</b></font><font face="verdana" size="1" color="black">: '.$def.'</font>';
}
else echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b> </b></font><font face="verdana" size="1" color="black"> </font>';
?>
</body>
</html>
*************** LE FICHIER treat.php
<?php
if ((isset($_GET)) && ($_GET['abr'] != '')){
include('db.php');
// open connection to the database
$conn = mysql_connect(HOST, USER, PASS);
mysql_select_db(DB);
$abr = $_GET['abr'];
$q = 'SELECT reference from article WHERE reference LIKE \''.$abr.'%\'';
$r = mysql_query($q);
$return = '<?xml version="1.0" standalone="yes"?><result>';
if ((mysql_num_rows($r)>0)){
$name = '';
while ($rep=mysql_fetch_array($r)){
$name .= $rep['reference'].';';
}
$return .= '<name>'.$name.'</name>';
}
if (mysql_num_rows($r)==0) $return .= '<name>;</name>';
$return .= '</result>';
header('Content-Type: text/xml');
echo $return;
}
?>
Aidez moi svp
le code ci dessous permet d'extraire une liste de ma base commancant par le mot que je viens de le taper dynamiquement et d'afficher les detail une fois je valide par le bouton definition
Par contre lorsque j appui sur le bouton j ai bien un resultat, mais la fonction de saisie semi automatique ne fonctionne pas ca c est sur. N y aurait il pas un truc a rajouter au niveau de PHP, genre une bibliotheque XML, ou un truc du genre
l'erreur javascript est au niveau de la ligne 87 du fichier test.php
*************** LE FICHIER test.php
<html>
<head>
<title>XMLHTTPREQUEST GRE WORDS QUERY</title>
<style type="text/css">
div.prop {
height: auto;
width: 150px;
//overflow: auto;
border: 1px solid #666;
background-color: #ccc;
padding: 8px;
font-size: 10px;
font-family:verdana;
font-weight: bold;
visibility:hidden;
}
input{
border-right : 1px solid #669;
border-top : 1px solid #669;
font-size : 10px;
border-left : 1px solid #669;
color : #000;
border-bottom : 1px solid #669;
font-family : verdana, arial, helvetica, sans-serif;
background-color : #f3f3f9;
}
</style>
<script type="text/javascript">
var isWorking = false; // est-ce que le canal est occupé
function getHTTPObject() {
var xmlhttp;
@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject(); // on crée un objet HTTP
function treatquery(){ // la requête
if (!isWorking && http) {
ch = document.send.abr.value;
if (ch.length>1){
http.open("GET", "treat.php?abr=" + escape(ch), true);
http.onreadystatechange = handleHttpResponse;
isWorking = true;
http.send(null);
}
if ((ch.length<3) && (document.getElementById('res').style.visibility == 'visible'))
document.getElementById('res').style.visibility = 'hidden';
}
}
function handleHttpResponse() { // traitement de la demande
if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
var xmlDocument = http.responseXML;
87 => var res = xmlDocument.getElementsByTagName('name').item(0).firstChild.data;
var elements = res.split(";");
var result;
if (elements[0] != ''){
result = "<font color=\"darkblue\">Vous voulez dire...</font><br />";
for (var i=0;i<elements.length;i++){
result = result + "<a style=\"text-decoration:none;color:red;\" href=\"javascript:setQuery('" + elements[i] + "');\">" + elements[i] + "</a><br />";
}
result = result + "<hr /><center><a href=\"https://www.digencia.ch\" style=\"text-decoration:none;color:darkgrey;\">pub ici</a></center>";
document.getElementById('res').innerHTML = result;
document.getElementById('res').style.visibility = 'visible';
}
else document.getElementById('res').style.visibility = 'hidden';
isWorking = false;
}
}
}
function setQuery(ch){
document.getElementById('abr').value = ch;
document.getElementById('res').style.visibility = 'hidden';
}
</script>
</head>
<body>
<form autocomplete="off" name="send" style="display:inline; position: relative;" action="" method="POST">
<div style="display:inline; position: relative;">
<input type="text" id="abr" name="abr" value="<?php echo $_POST['abr'];?>" style="width: 150px;font-family:verdana; font-size:8pt;color:darkblue;" onKeyUp="treatquery();" />
<input type="submit" value="definition" style="font-family:verdana; font-size:8pt;" name="submit" />
<div id="res" style="background-color:white;position: absolute; top: 22px;left: 0px;" class="prop" onMouseMove="this.style.visibility='visible';" onMouseOut="this.style.visibility='hidden';">
</div>
</div>
</form>
<?php
if ((isset($_POST)) && ($_POST['abr']!='')){
include('db.php');
// open connection to the database
$conn = mysql_connect(HOST, USER, PASS);
mysql_select_db(DB);
$q = 'SELECT reference FROM article WHERE reference = \''.$_POST['abr'].'\';';
$r = mysql_query($q);
if (mysql_num_rows($r)>0){
$res = mysql_fetch_assoc($r);
$def= $res['reference'];
}
else $def = 'no definition known...';
echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b>'.$_POST['abr'].'</b></font><font face="verdana" size="1" color="black">: '.$def.'</font>';
}
else echo '<br /><br /><font face="verdana" size="1" color="darkblue"><b> </b></font><font face="verdana" size="1" color="black"> </font>';
?>
</body>
</html>
*************** LE FICHIER treat.php
<?php
if ((isset($_GET)) && ($_GET['abr'] != '')){
include('db.php');
// open connection to the database
$conn = mysql_connect(HOST, USER, PASS);
mysql_select_db(DB);
$abr = $_GET['abr'];
$q = 'SELECT reference from article WHERE reference LIKE \''.$abr.'%\'';
$r = mysql_query($q);
$return = '<?xml version="1.0" standalone="yes"?><result>';
if ((mysql_num_rows($r)>0)){
$name = '';
while ($rep=mysql_fetch_array($r)){
$name .= $rep['reference'].';';
}
$return .= '<name>'.$name.'</name>';
}
if (mysql_num_rows($r)==0) $return .= '<name>;</name>';
$return .= '</result>';
header('Content-Type: text/xml');
echo $return;
}
?>
Aidez moi svp
A voir également:
- Probleme getElementsByTagName('name').item(0)
- Comment remettre son pc a 0 - Guide
- 0 barré clavier ✓ - Forum Windows
- Qualité de signal parabole 0 - Forum TNT / Satellite / Réception
- Numéro de téléphone excel 0 - Guide
- A-docv9-0-zn - Forum Freebox
2 réponses
Tu pourrais pas nous donner l'adresse directement pour voir de quoi ça a l'air?
La c'est un peu indigeste ^^.
Surtout qu'on peut pas tester en local vu qu'on a pas la BDD.
La c'est un peu indigeste ^^.
Surtout qu'on peut pas tester en local vu qu'on a pas la BDD.
Bonjour à vous,
Vous pourriez peut être m'aider en PHP, J'ai ouvert un TOPIC, si vous pouvez allé voir: http://www.commentcamarche.net/forum/affich 13034388 donnees formulaire sous php
Merci à vous.
Florian
Vous pourriez peut être m'aider en PHP, J'ai ouvert un TOPIC, si vous pouvez allé voir: http://www.commentcamarche.net/forum/affich 13034388 donnees formulaire sous php
Merci à vous.
Florian