Mit "system" - og overhovedet det du beder om : )
- men det virker og er et ret "robust" setup - du skal bare file det til..
En javascript funktion find() - som kaldes andetsteds fra.
Den kontakter serveren via AJAX (vha. jQuery).
Serveren (PHP) søger i databasen, og returnerer nogle data.
- som javascript-funktionen så præsenterer.
JS:
function find(ord)
{
var ss = document.getElementById("log").innerHTML
document.getElementById("log").innerHTML = "<h2 style='margin:0 8px'>Øjeblik...</h2>"
$.ajax({
dataType: "json"
,url : "ajax.php"
,type : 'POST'
,data : {"kommando" : "find"
,"ord" : ord
}
,error: function(xhr, error) // alvorlige fejl - syntaxfejl i PHP f.eks.
{
alert("Ajaxfejl (find):"+error
+"\nord:"+ord
+"\nxhr.responseText:"+xhr.responseText)
}
,success: function(data) // Det virkede !
{
if (data.fejl != undefined) // mine egne fejl
{
if (data.fejl == "NUL")
{
document.getElementById("log").innerHTML = ss // vis tidligere svar igen
alert("Ikke fundet")
}
else
alert(data.fejl.replacesubstring("|#|","\n"))
return
}
if (data.OK != undefined) // fjong - det fundne ligger i data.result - et array af JSON-objekter :)
{
var s = "<table id='likeOrd' border=1 cellpadding=0 cellspacing=0 style='margin-right:20px;width:100%'>"+
"<tr><th style=text-align:left> "+data.result.length+
"</th><th style=text-align:left> Ord"+
"</th><th style=text-align:right> Pt"+
"</th><th style=text-align:center> E"+
"</th><th style=text-align:center> F"+
"</th><th style=text-align:left> Clue"+
"</th></tr>"
for (var i=0;i<data.result.length;i++)
s += "<tr><td>"+i+"</td>"
+"<td style=cursor:pointer onclick=fyldi('"+data.result[i]['ord']+"')>"+data.result[i]['ord']+"</td>"
+"<td align=right>"+data.result[i]['point']+"</td>"
+"<td align=center>"+data.result[i]['egenavn']+"</td>"
+"<td align=center>"+data.result[i]['forkortelse']+"</td>"
+"<td align=right style='text-transform:none'>"+data.result[i]['clue']+" </td>"
+"</tr>"
document.getElementById("log").innerHTML = s
return
}
alert("hm.. Uventet svar fra databasen:\n"+dump(data))
}
});
}
PHP (ajax.php)
<?php session_start();
mb_internal_encoding("UTF-8");
require "AA_CONST.php";
require "AA_SQL.php";
require "tools.php";
$funx = array("find","save","list","hent","slet","magi");
if (!isset($_POST['kommando'])) exit(json_encode(array("fejl"=>"Ingen kommando specificeret")));
if (!in_array($_POST['kommando'], $funx)) exit(json_encode(array("fejl"=>"Ukendt kommando:".$_POST['kommando'])));
if ($_POST['kommando'] == "find")
{
$ord = wash( $_POST['ord'],100);
$result = runSQL("select * from dansk where ord like ? order by egenavn asc,ord asc",array("s",$ord));
if (is_string($result)) exit(json_encode(array("fejl"=>$result)));
if (count($result)==0) exit(json_encode(array("fejl"=>"NUL"))); // fandt ikke noget
// 2 variabler tilbage til JS OK og result (et array)
exit(json_encode(array("OK"=>"Fjong","result"=>$result)));
}
// flere funktioner herunder (i samme php-fil)
?>