Различно подреждане на заявката с ajax

sentenello

Registered
Здравейте,
След като зареди страницата ми, излиза дадената информация, но в тази информация има час и първенство.
Въпроса ми е как с ajax да направя да имам два бутона примерно(или линкове, което трябва да е ;) ) и като натисна да ми подрежда по час или по първенство, но без да презарежда страницата, което означава, че трябва да сменя "order by.." на заявката.

П.С. Незнам дали става точно с ajax, но си мисля, че е точно с него ;)
 
connect.js каза:
var xmlhttp;

function connect(order) {
xmlhttp = GetXmlHttpObject();
if (xmlhttp == null) {
alert("Браузърът ти не поддържа Ajax, поради което страницата не може да функционира коректно.");
return;
}
target = "./reorder.php?order="+order;
xmlhttp.onreadystatechange = stateChanged;
xmlhttp.open("GET", target, true);
xmlhttp.send(null);
}
function stateChanged() {
if (xmlhttp.readyState == 4) {
var responseText = xmlhttp.responseText;
document.getElementById("ListOverlay").innerHTML = responseText;
}
}
function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}

Горното го записваш като connect.js, а долното като reorder.php.

reorder.php каза:
<?
$order = $_GET['order'];
$link = @mysql_connect('ХОСТ', 'ПОТРЕБИТЕЛ', 'ПАРОЛА') or die('Грешка: Няма връзка с SQL сървъра.');
$query = @mysql_query("SELECT * FROM `БАЗАТА ДАННИ`.`ТАБЛИЦАТА` ORDER BY `ПОЛЕ` ASC'");
while ($row = @mysql_fetch_array($query)) {
$info = $row['info'];
echo ala bala
ТУК СИ ПОДРЕЖДАШ РЕЗУЛТАТИТЕ В ТАБЛИЦА ИЛИ ТАМ КАКТО ТИ Е ВЪВ ФАЙЛА С КЛАСАЦИЯТА.
}
?>

Във файла в който ти се извежда класацията добавяш това в head:

<script type="text/javascript" src="./connect.js"></script>

И ограждаш таблицата в която са подредени резултатите в това: <div id="ListOverlay"></div>
По този JavaScript не пипай нищо, след това си правиш бутон там до класацията и на него му задаваш:

onclick="javascript:connect(аргумент)"

И по този начин като извикаш тази функция тя се свързва с reorder.php и му предава аргумента който си и задал като GET аргумент, взимаш си го в скрипта и си го нагласяваш там да ти прави заявката. След това, каквото се върне като echo от PHP скрипта, то се вкарва в този див(ListOverlay), с който си оградил таблицата, като старото му съдържание се премахва. Нагласи си го там.
 
Когато ми остане време ще го тествам и ще напиша ако имам проблеми. Сега съм много зает и затова няма да е много скоро, но все пак ще го тествам.
 
Схванах смисъла на това което ми казваш, но не можах да го наглася/вградя в моите файлове и затова сега ще ти кажа как са при мен и ти ще ми кажеш какво да направя :)

Имам файл на име prognozi.php в който ехвам прогнозите.
Код:
echo '
<table  align="center" width="100%" cellpadding="0" cellspacing="0">
<tr ><td width="20px" height="30px" style="background: url(http://www.prognozite.com/game/titleleft.GIF) no-repeat;"></td><td align="center" colspan="2" style="background: url(http://www.prognozite.com/game/titleto.gif) repeat;"><b>Възможните прогнози за днес</b></td><td width="20px" style="background: url(http://www.prognozite.com/game/titleright.GIF) no-repeat;"></td></tr>
</table>
<table class="allpred" align="center">
   <tr>
       <td rowspan="2" class="inmenu" width="64px">П-во | час</td>
    <td class="inmenu" width="236px">Среща</td>
        <td class="inmenu" width="45px">Т</td>
    <td class="inmenu" width="45px">П</td>
    <td class="inmenu" width="45px">ГД</td>
    <td class="inmenu" width="45px">ГГ</td>
   </tr>
   </table>';
$tdate = date('d.m');
$godina = date('Y');
$zaqvka1 = " SELECT `matchid`
FROM `userbets`
WHERE `tipster` LIKE '".$logged['username']."' and data=$tdate && chas>TIME(NOW())
 ";
$result = mysql_query($zaqvka1);
$num_results = mysql_num_rows($result);
$getgamebets_sql = "SELECT * from igrabets where data=$tdate && godina=$godina && chas>TIME(NOW()) ";
for ($i=0;$i<$num_results;$i++) {
$row = mysql_fetch_array($result);
$matchid[$i] = stripslashes($row['matchid']);
$getgamebets_sql .= "&& id != $matchid[$i]";
}

$getgamebets = mysql_query($getgamebets_sql) or die(mysql_error());

$getgamebets_sql1 = "SELECT * from igrabets where data=$tdate && godina=$godina && chas>TIME(NOW()) ";
$getgamebets1 = mysql_query($getgamebets_sql1) or die(mysql_error());

$todaybets1 = mysql_query("SELECT * from userbets where tipster = '$logged[username]' AND data=$tdate order by id ASC");
$numrowprognozirani1 = mysql_num_rows($todaybets1);
$numrowbets = mysql_num_rows($getgamebets1);


if($numrowbets == 0){
echo "<center><b>Няма добавени мачове за днес</b></center><br><hr style=\"width:100%;color: #333300;
background-color: #333300;\">";
}else if($numrowbets == $numrowprognozirani1 ) {
echo "<center><b>Вече сте прогнозирали всички срещи за деня</b></center><br><hr style=\"width:100%;color: #333300;
background-color: #333300;\">";
}else {
while ($game = mysql_fetch_array($getgamebets))
{
.....КОД 
echo '<form method="POST">
<table class="allpred" >
   <tr>
       <td width="25px" style="text-align: left; border-right:0px;"><font size="1"><img  valign="top" src="../game/flag_'.$img.'.png" alt="" /><br>'.$text.'<input class="btn" type="hidden" name="pyrvenstvoto['.$game['id'].']" value="'.$game[league].'"></td>
    <td width="35px"><font size="1">'.$game['chas'].'
    <input class="btn" type="hidden" name="data['.$game['id'].']" value="'.$game[data].'">
    <input class="btn" type="hidden" name="chasa['.$game['id'].']" value="'.$game[chas].'"></td>
   
   <td width="140px" style="text-align: left; border-right:0px;"><font size="1">'.$game['matcha'].'<input class="btn" type="hidden" name="sreshtata['.$game['id'].']" value="'.$game[matcha].'"></font>
</td>

<td width="100px" style="text-align: left;"><font color="#FFF123" size="1">'.$game['koef1'].' '.$game['koefx'].'  '.$game['koef2'].' </font><input class="btn" type="hidden" name="koef2['.$game['id'].']" value="'.$game[koef2].'"/><input class="btn" type="hidden" name="koef1['.$game['id'].']" value="'.$game[koef1].'"/><input class="btn" type="hidden" name="koefx['.$game['id'].']" value="'.$game[koefx].'"/>
</td>
   
    <td width="45px"><SELECT NAME="tochki['.$game['id'].']" style="text-align: left;" class="btnreg" >
    <OPTION SELECTED VALUE=""></OPTION>
<OPTION VALUE="1">1</OPTION><OPTION VALUE="2">2</OPTION><OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION><OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> 
</SELECT> </td>
   
    <td width="45px">
    <SELECT NAME="zalog['.$game['id'].']" id="zalog'.$game['id'].'" style="text-align: center;" class="btnreg" onChange="check(\'zalog\',this[this.selectedIndex].value,\''.$game['id'].'\');">
   <OPTION SELECTED VALUE=""></OPTION>
<OPTION VALUE="1">1</OPTION><OPTION VALUE="X">X</OPTION><OPTION VALUE="2">2</OPTION>
</SELECT>
    </td>
     <td width="45px"><SELECT NAME="gold['.$game['id'].']" id="gold'.$game['id'].'" style="text-align: center;" class="btnreg" onChange="check(\'gold\',this[this.selectedIndex].value,\''.$game['id'].'\');">
    <OPTION SELECTED VALUE=""></OPTION>
    <OPTION VALUE="0">0</OPTION>
<OPTION VALUE="1">1</OPTION><OPTION VALUE="2">2</OPTION><OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION><OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> 
</SELECT> </td>
     <td width="45px"><SELECT NAME="golg['.$game['id'].']" id="golg'.$game['id'].'" style="text-align: center;" class="btnreg" onChange="check(\'golg\',this[this.selectedIndex].value,\''.$game['id'].'\');">
    <OPTION SELECTED VALUE=""></OPTION>
    <OPTION VALUE="0">0</OPTION>
<OPTION VALUE="1">1</OPTION><OPTION VALUE="2">2</OPTION><OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> <OPTION VALUE="7">7</OPTION> <OPTION VALUE="8">8</OPTION><OPTION VALUE="9">9</OPTION> <OPTION VALUE="10">10</OPTION> 
</SELECT> </td>
   </tr>
</table>
';
..../
Както виждаш ехвам прогнозите в една таблица.
 
Сега ще се опитам да обясня по-лесно и направо ще дам снимка.



Тези първенства който са отгоре искам да ги изписва автоматично от БД-то, като проверява за деня кои първенства са добавени и да ги изкарва.
След това с JS когато кликна на дадено първенство отгоре доло във възможностите за прогнозиране да ми изкарва само мачовете от това първенство.
Това означава, че JS-та трябва да променя Where клаузата на заявката.
 

Back
Горе