AJAX UND JSON
With Ajax one can create a dynamic HTML-Page, without load the complete page.
Prinzip:
  1. globale Variable im JavaScript-Abschnitt
    • var xmlhttp = new XMLHttpRequest();
    • xmlhttp.onreadystatechange = readajax;
  2. Init-Methode, die von einem Event aufgerufen wird
    • function testajax( form ) {..}
  3. Callback-Function, die vom XMLHttpRequest-Object aufgerufen wird
    • status hat die Werte 0 bis 4
    • status=4: Nachricht von Server ist angekommen

Code-Samples

1. PHP Sample

2. PHP Sample

1. JSP Sample

2. JSP Sample

The NEW JSon-Object




Complete-samples

PHP Samples

JSP Samples




The NEW JSon-Object

If you want to use the nirmal JSon-Object, you must insert a jar-file. Then you use the put methods you create the JSon-String.
But this is not necessary. You better use my Json-Object-family new JSon-Object.

This methods used the reflection in java. With the reflection, one can print the name of the an object, all methods, all variables and you can get or set all values of the attribs. My Json-Object-family ist very powerful and very easy to use.

You need at least one method:
private String getJSon(Object obj)

This method create with one call the complete String!

If you have an Array or an ArrayList, you can use one og the following methods:
· private String getJSonArray(Object[] objs)
· private String getJSonArraylist(ArrayList objs)

These methods get all objects in the arrays and create the JSon-String:
[ {"name":"Miller", "mnr":12345},{"name":"Smith", "mnr":12346} ]



private String getJSon(Object obj) {
     StringBuilder sb = new StringBuilder();
     try {     
       Class c = obj.getClass();  // create a "class" from the object
       Field[] fields; 
       fields = c.getDeclaredFields();  // get the attribs
        // create the JSon-String: {  {"name": "Meier59", "mnr":12345} 
       sb.append("{");
       int n=fields.length-1;  // need for the last comma
       for(int i=0; i<n; i++) {
         Field field = fields[i];
         sb.append("\"");
         sb.append(field.getName());
         sb.append("\": ");  // if a String: the value has two 'double quotation marks'
         String s=field.getType().toString();  // language.String....
         if (s.indexOf("String")>0) {
            sb.append("\"");
            sb.append(field.get(obj));  // get the value
            sb.append("\"");
         }
         else {
          sb.append(field.get(obj));
         }
         if (i<n-1) {
            sb.append(", ");   // get the value
         }
       }
       sb.append("}");
       }
     catch ( IllegalAccessException e) {
     }
     return sb.toString();
  }

createTable

This function create a html table with a JSon field!

function createTable(objs, numberDefinition, pindexnr, str_calledit, str_calldelete) {
let nl = '\n';
let obj = objs[0];
let captions = Object.keys(obj);

let s='';
s +='<table>' + nl;
s +='<tr>' + nl;
if (str_numberDefinition.length>0) {
s +=' <th>' + str_numberDefinition + '</th>' + nl;
}
for(var i in captions){
let scaption = captions[i];
let sfirst = captions[i].substring(0,1).toUpperCase();
s +=' <th>' + sfirst + scaption.substring(1,scaption.length) + '</th>' + nl;
}
if (str_calledit!='') {
s +=' <th>' + '-' + '</th>' + nl;
}
if (str_calldelete!='') {
s +=' <th>' + '-' + '</th>' + nl;
}
s +='</tr>' + nl;

for (let i in objs) {
s +='<tr>' + nl;
if (str_numberDefinition.length>0) {
s +=' <td>' + (i+1) + '</td>' + nl;
}
let obj = objs[i];
for(var j in obj){
//alert(j);
s +=' <td>' + obj[j] + '</td>' + nl;
}
if (str_calledit!='') {
s+=' <td class="tdbutton">' + '<input type="button" value="Edit" onclick="'+str_calledit+'(' + obj[pindexnr] + ')"/>' + '</td> ' + nl;
}
if (str_calldelete!='') {
s+=' <td class="tdbutton">' + '<input type="button" value="Delete" onclick="'+str_calldelete+'(' + obj[pindexnr] + ')"/>' + '</td> ' + nl;
}

s +='</tr>' + nl;
}

s +='</table>' + nl;
return s;
}




Literatur AJax und JSon

AJAX. schnell + kompakt Taschenbuch
von Christian Wenz
ISBN-10: 3935042922
ISBN-13: 978-3935042925


AJAX
von
Klaus Zeppenfeld, Hassan El Moussaoui

Ajax: Grundlagen, Frameworks und Praxislösungen
von Stefan Mintert,‎ Christoph Leisegang
Verlag: dpunkt;
ISBN-10: 3898644049
ISBN-13: 978-3898644044





1. PHP Sample