Zdravim, uz tri dni si neviem rady a tocim sa v bludnom kruhu, aj ked predpokladam ze nejde vobec o zlozity problem. Pre ilustraciu vesiam aj useky kodu zo suborov :
//******************************************************
jscript.js // ajax + js // 3 fcie
func.php // trieda Dif_con
processing.php // script do kt. by mala byt odosielana premenna cez ajax
index.php//******************************************************
Pricom problem je ze server je uplne bez reakcie, ak vsak pouzijem jednoduchsi priklad zkopceny z nejakej prirucky vestko (ajax, js, php) ide bez problemov.
jscript.js je takmer skopirovany :
Kód:
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
var xmlHttp;
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
function process()
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
name = encodeURIComponent(document.getElementById("myName").value);
xmlHttp.open("GET", "processing.php?name=" + name, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000);
}
function handleServerResponse()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
helloMessage = xmlDocumentElement.firstChild.data;
document.getElementById("divMessage").innerHTML =
'<i>' + helloMessage + '</i>';
setTimeout('process()', 1000);
}
else
{
alert("There was a problem accessing the server: " + xmlHttp.statusText);}
}
}
func.php je moja nadefinovana trieda, vesiam len dolezity usek:
Kód:
$GLOBALS = array();
class Dif_con
{
private $ID = 'myName';
private $index;
private $_connect;
private $globalize;
public function selecting($name)
{
echo '<response>';
$db_selected = mysql_select_db('data', $this->_connect);
$sql = mysql_query("SELECT * FROM `tbl_a` WHERE `fldCeleMeno` = '$name'");
while($info = mysql_fetch_array($sql))
{
echo $info['fldID'].'  '.$info['fldMeno'].'  '.$info['fldPriezvisko'];
echo '<hr>';
}
echo '</response>';
}
private function show_select($id,$g)
{
echo '<form method = "get"">';
echo '<select name = "crit" id="'.$id.'">';
echo '<option value="">-</option>';
for($ind = 0 ; $ind < $this->index ; $ind++)
echo '<option value="'.$g[$ind].'">'.$g[$ind].'</option>';
echo '</select>';
echo '</form>';
}
public static function connection()
{
$connecting = new Dif_con();
$connecting->_connect = mysql_connect('localhost', 'root');
return $connecting;
}
public function filling_select()
{
global $GLOBALS; $this->index = 0;
$db_selected = mysql_select_db('data', $this->_connect);
$sql = mysql_query('SELECT fldCeleMeno FROM `tbl_a`');
while($info = mysql_fetch_array($sql))
{
$GLOBALS[$this->index] = $info['fldCeleMeno'];
$this->index++;
}
if($this->index > 0)
{
$this->globalize = & $GLOBALS;
$this->show_select($this->ID, $this->globalize);
}
}
}
processing.php je subor kde by sa mal vykonat proces po zmene v <select> tagu vo fcii show_select();
Kód:
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$name = $_GET['name'];
require_once 'func.php';
$db_1 = Dif_con::connection()->selecting($name);
?>
a index.php :
Kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="jscript.js"></script>
</head>
<body onchange = 'process()'>
<?php
require_once 'func.php';
$db_1 = Dif_con::connection()->filling_select();
?>
<div id="divMessage" />
</body>
</html>
PHP usek v indexe.php funguje, lebo nacita si do <select> tagu mena z databazy, ale inak je to cele bez reakcie.
Kod nie je nic svetoborne, snazim sa v rychlosti ucit ajax takze skusam v jednoduchych konceptoch.
Ak sa nato niekto vie mrknut..dakujem vopred za vsetky nazory.