Zur Navigation

Automatischer Reloaded auf die Inserat reiheinfolge!

1 Jimmy

Hallo. Der rechte box mit den neuesten Anzeigen funktioniert jetzt beim IE. www.autobooster.de (mit dem Box meine ich = das rotierinde neueste Autoanzeigen unter dem roten VW Touareg)

Jetzt habe ich ein anderes Vorhaben mit dem Box für die neuesten Auto-Anzeigen.

Also die Box rottiert sich durcheinander, "mit der neuesten Anzeigen", mal ist die neueste Auto-Anzeige in der Mitte und mal ganz unten und mal garnicht vorhanden und nachher ist es wieder da, also rotiert es sich durcheinander, soweit so gut.

Also ich wollte eigentlich so, das die neuesten Inserate von oben nach unten gelistet werden und nicht durcheinander. Also ältester Inserat ganz unten und die neueste inserat ganz oben auf dem Box.
Und wenn keine neue Autos Inseriert werden von kunden, soll der box sich nicht ändern und damit auch die reihenfolge der Box unverändert bleiben.
So ein vorhaben sollte doch möglich sein, oder?

Hier nochmal mein ajax.js

var req;
var area;

function Initialize()  {

   if (window.XMLHttpRequest) {
      // Mozilla, Safari,...
         req = new XMLHttpRequest();
      if(req.overrideMimeType) {
         req.overrideMimeType('text/xml');
         }
   }       
   try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch(e) {
      try {
         req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(oc) {
         req = null;
      }
   }

   if(!req && typeof XMLHttpRequest!="undefined") {
      req = new
      XMLHttpRequest();
   }
} 
  
function SendQuery(url, target) {

   Initialize(); 

   if(req != null) {
      area = target;

      //elem = document.getElementById(area);
      //elem.innerHTML='<div align="center">'+
      //               '<b style="color:#ff0000">'+
      //               ' *** PLEASE WAIT *** </b></div>';

      req.onreadystatechange = Process;
      req.open("GET", url, true);
      req.setRequestHeader('X_REQUESTED_WITH', 'XmlHttpRequest');
      req.send(null);
   }

}

function SendQuerySynchron(url, target) {
   Initialize(); 

   if(req != null) {
      area = target;
      req.onreadystatechange = Process;
      req.open("GET", url, false);
      req.setRequestHeader('X_REQUESTED_WITH', 'XmlHttpRequest');
      req.send(null);
      Process();
   }

}

function Process() {
   contentArea = area;

   if(req.readyState == 4) {

      if(req.status == 200 && req.responseText != "") { 
        if(!document.getElementById(contentArea)) window.alert('Can not found contentArea: '+contentArea);

         var obj = document.getElementById(contentArea);
         obj.innerHTML = req.responseText;
         obj.style.display = 'inline';
      } else { 
         document.getElementById(contentArea).innerHTML = "There was a problem retrieving data:<br>" + req.statusText;
      }
   }
}

function SendForm(url, target, formId, synchron) {

   area = target;
   asynchron = true;
   if(synchron) asynchron = false;

   parameters = getFormElements(formId);

   Initialize();
   if(!req) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }

   if(req != null) {
      req.onreadystatechange = Process;
      req.open("POST", url, asynchron);
      req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      req.setRequestHeader("Content-length", parameters.length);
      req.setRequestHeader("Connection", "close");
      req.setRequestHeader('X_REQUESTED_WITH', 'XmlHttpRequest');
      req.send(parameters);

      if(synchron) Process();
   }
}

function getFormElements(formId)
{
    var parameters = [];

    form = document.getElementById(formId);
    if(!form) window.alert('Form '+formId+' not found');
    
    for(var x = 0; x < form.elements.length; x++) { // select, radio gesondert behandeln !!!!
        var element = form.elements[x];

        if(element.type == "radio" && element.checked == false) continue;

        if(typeof parameters[element.name] == "undefined") {
            parameters[element.name] = [];
        }

        parameters[element.name].push(element.value);
    }
    

    var parametersStr = "";
    
    for(var x in parameters) {
       parametersStr += (parametersStr.length? "&" : "") + 
                        encodeURIComponent(x) + "=" + 
                        encodeURIComponent(parameters[x]);
    }

    return parametersStr;
}


Ich bin für jede Hilfe sehr dankbar.

gruss

Jimmy

03.02.2008 12:41 | geändert: 03.02.2008 12:50

2 Jörg Kruse

Wie die Reihenfolge zustande kommt, kann ich auf Anhieb nicht erkennen - das werde ich mir später vielleicht nochmal genauer anschaun - oder vielleicht kann jemand anders zwischenzeitlich einen Blick drauf werfen

Mit dieser Zeile im HTML-Quelltext wird aber die Box alle 16 Sekunden neu geladen:

mytimer = window.setInterval('rotate()',16000);

Wenn du die entfernst oder auskommentierst, sollte sich die Reihenfolge nur beim Neuladen einer Seite ändern

03.02.2008 13:21 | geändert: 03.02.2008 13:21

3 Jimmy

Wenn ich es entferne oder auskommentiere verschwindet die Box.
Ausserdem ich will das sich der BOX sich AUTOMATISCH aktuallisiert und nich durch manuelle Aktuallisieren des Browsers.
Ich stell mir das so vor:

Also, wenn einer vor dem Bildschirm zuhause auf meiner homepage ist, soll der Box von ganz alleine sich aktuallisieren ohne das man selber die seite neu lädt.
Aber auch nur wenn neue Autos von irgend jemand inseriert werden.
Praktisch wird mann vor dem bildschirm sich hinsetzen und den Box einfach nur beobachten und abwarten bis ein neues Auto inseriert wird.

Diese Funktion soll menschen helfen die schnell reagieren wollen wenn ein günstiges auto inseriert wird.

Ich hoffe ihr könnt mir ratschläge geben, was ich ändern muß in den ajax.js oder auch woanders, damit dieser Automatischer Reloaded funktioniert.

gruss

Jimmy

03.02.2008 13:44

4 Jörg Kruse

So, ich bin jetzt dazu gekommen, mir die Sache nochmal näher anzuschauen.

Der JavaScript-Code in ajax.js lädt den Code von dieser URL:

http://www.autobooster.de/index.php?module=preview

Wenn man diese URL reloadet, erhält man jedesmal eine andere Reihenfolge. Von der ajax.js hängt die Reihenfolge demzufolge nicht ab. Für eine Anpassung der Reihenfolge müsste man wohl das PHP-Script abändern

03.02.2008 14:45

5 Jimmy

Danke für die schnelle antwort nochmal.
Welchen script brauchen sie den für die änderung?
Ist das nur eine datei oder brauchen sie den gesammten script?

03.02.2008 14:47

6 Jimmy

Hier ist mein Index.php

[Edit Jörg: wegen Copyrightbestimmungen entfernt]

03.02.2008 14:50 | geändert von Jörg: 03.02.2008 15:21

7 Jörg Kruse

In der index.php sind einige Includes aufgeführt - aus der Benennung geht aber nicht hervor, in welcher Include-Datei der XmlHttpRequest behandelt wird. Ein Anhaltspunkt können die in der URL vorkommenden Bezeichnungen "module" und "preview" sein, z.B.:

if ($_GET['module'] == 'preview') {

... könnte aber auch völlig anders ausschauen ;)

PS: hast du das Script gekauft? Dann würde ich den Programmierer auf diese Problematik ansprechen. In den im Code aufgeführten Lizenzbestimmungen hat er es nämlich untersagt, dass Dritte Zugang zu diesem Script haben

* LICENSE
*
* [All rights reserved]. This product and related documentation are protected
* by copyright restricting its use, copying, distribution, and decompilation
* No part of this product or related documentation may be reproduced in any
* form by any means without prior written authorization of Nico Flemming or
* his partners,if any. Unless otherwise arranged, third parties may not have
* access no this product or relatec docs.

... von daher können andere leider auch nicht zu einer Lösung beitragen

03.02.2008 15:20 | geändert: 03.02.2008 15:22

8 Forum

Ein Beitrag aus diesem Thread wurde in einen neuen Thread verschoben:

Seite zentrieren

03.02.2008 15:38

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]