tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
698
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Hallo zusammen

    Auf der Suche nach einem Lösungsansatz wäre ich froh um eure Hilfe.

    Ich habe 3 Elemente: search, box1, box2 (siehe Grafik anbei). Das erste Element (id=“search“) ist ein Input-Feld welche über einen onkeyup=““ den Suchbegriff an eine Datenbank-Abfrage leitet. Das Ergebnis dieser Abfrage wird im Div-Container (id=“box1“) dargestellt dies funktioniert soweit ohne Probleme.

    Nun liefert mir diese Abfrage auch gleich die Anzahl der gefundenen Datensätze. Diesen Wert möchte ich in id=“box2“ anzeigen.

    Wie ist es möglich aus über AJAX zwei Div-Container anzusprechen bzw. gibt es die Möglichkeit einen erhaltenen Wert aus box1 an die box2 zu übergeben?
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken zwei DIVs gleichzeitig ansprechen?-untitled-1.jpg  
     

  2. #2
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Schreibst Du die Ajax-Rückgabe gleich in die Divbox 1 oder hast Du einen Zwischenschritt ? Wenn Du Dir ein Array zurückgeben lässt ( Anzahl, Inhalt ), dann sollte es kein Problem sein, Inhalt in divbox1 und Anzahl in divbox2 auszugeben.

    Code :
    1
    2
    
    document.getElementById('divbox1').innerHTML=Ajax[0];
    document.getElementById('divbox2').innerHTML=Ajax[1];
    Sorry, ist ein bissel Pseudocode, aber zeigt den Weg auf. Ich mache mir selten die Mühe, schnell gesetzten Code auf Richtigkeit zu überprüfen..

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,


    du könntest aus der Antwort(wie immer auch diese aussehen mag) die Anzahl "extrahieren".
    Wie das genau ginge, und ob es überhaupt geht, hängt halt davon ab, wie die Antwort aussieht.

    Elegant wäre dies allerdings nicht unbedingt

    Besser wäre es, wenn die Serverantwort in einem sinnvollen Format erfolgt.

    Da gäbe es zum Einen einen JSON-codierten String, über diesen könntest du ein Objekt/Array übermitteln, und dieses Bequem verarbeiten.

    Auch eine XML-Struktur, welche die benötigten Daten beinhaltet wäre möglich,
    JSON halte ich auf deine Beschreibung hin aber für empfehlenswerter.
     

  4. #4
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Ich rufe zuerst die Datei adresse.php auf welche die Datensätze sowie die Anzahl Datensätze auflistet.



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    function Search()
      {
      searchvalue = document.getElementById('search').value;
                      resObjekt.open('get', 'adresse.php?search='  + searchvalue);
                      resObjekt.onreadystatechange = ShowOutput;
                      resObjekt.send(null); 
      }
       
      function ShowOutput()
      {
                      if(resObjekt.readyState == 4)
                      {
                                     document.getElementById(box1).innerHTML = resObjekt.responseText;
                      }
      }
     

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Interessanter wäre es, wenn du postest, womit adresse.php antwortet
     

  6. #6
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Bau Dir einen eindeutigen Unterbrecher in die php, lass Dir dann die Antwortdaten in zwei Teile unterteilen also zB

    Ausgabetext der php ( response ):
    Code :
    1
    
    44[*]bla bla das ist der Text und so weiter
    Somit lässt Du Dir responseText an der Stelle [*] teilen und dann in die Divboxen schreiben.. Du kannst in JS die Position des Trenners per indexof() auslesen und per substring() die Teile extrahieren. Somit musst Du nicht gleich auf JSON oder XML zurückgreifen, was bei der geringen Arraygröße -meiner Ansicht- Overdosed wäre.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  7. #7
    unrealzero_php unrealzero_php ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    213
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Interessanter wäre es, wenn du postest, womit adresse.php antwortet
    Hier das vereinfachte Script...
    PHP-Code:
    <?php
        
    function searchqry($qry,$type,$cols)
        {
            
    $searchres explode(' 'trim($qry));
            
            if(
    trim($qry) != '')
            {        
                
    $where '(';
                
    $p 1;
                foreach(
    $searchres as $value)
                {
                    if(
    $p != && $value != '')
                    {
                        
    $where .= ') AND (';
                        
    $p 1;        
                    }
                    
                    foreach(
    $col explode(',',$cols) as $field)
                    {
                        if(
    $value != '')
                        {
                            if(
    $p == 1)
                            {
                                
    $where .= $field.' LIKE \'%'.$value.'%\'';    
                                
    $p++;                
                            }
                            else
                            {
                                
    $where .= ' OR '.$field.' LIKE \'%'.$value.'%\'';        
                            }
                        }
                    }
                }
                
                
    $where .= ')';
                
                return 
    ' '.$type.' '.$where;
            }
            else
            {
                return 
    '';        
            }
        }
        
        
    $where searchqry($_GET['search'],'WHERE','`name`,`vorname`,`adresse`,`plz`,`ort`');
        
        echo 
    '<table>
                <tr>
                    <th>Name</th>
                    <th>Vorname</th>
                    <th>Adresse</th>
                    <th>PLZ</th>
                    <th>Ort</th>
                </tr>'
    ;
                
                
    $res mysqli_query($coredb,'SELECT SQL_CALC_FOUND_ROWS(`ID`),`name`,`vorname`,`adresse`,`plz`,`ort` FROM `tbl_adresse` '.$where.' ORDER BY `name` ASC');
                                                            
                
    $count mysqli_fetch_array(mysqli_query($coredb,'SELECT FOUND_ROWS()'));
                
                while(
    $row mysqli_fetch_array($res))
                {
                    
    $name $row['name'];
                    
    $vorname $row['vorname'];
                    
    $adresse $row['adresse'];
                    
    $plz $row['plz'];
                    
    $ort $row['ort'];
                    
                    echo 
    '<tr>
                            <td>'
    .$name.'</td>
                            <td>'
    .$vorname.'</td>
                            <td>'
    .$adresse.'</td>
                            <td>'
    .$plz.'</td>
                            <td>'
    .$ort.'</td>
                        </tr>'
    ;
                            
                }
                
        echo 
    '</table>';
        
        
    $AnzahlDatensaetze $count[0];
    ?>
     

  8. #8
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Uninteressant. Nicht der php.code war gefragt, sondern die Antwort, also die Ausgabe des php-Codes. Unterm Strich muss Dein php-code zwei Daten erzeugen und diese per Trenner ausgeben.

    PHP-Code:
    <?php
    /* -----   Anzahlquery */
    echo ($anzahl);
    /* ------   Trenner */
    echo ('[*]');
    /* -------   Inhaltquery, also Dein obiger Code */
    echo ($inhalt);
    ?>
    unrealzero : Ich meine das durchaus nicht böse, aber Deine Fragestellung bezieht sich nicht auf die 1.Ebene ( Code ), sondern eher auf die Darüberliegende - wie kommuniziert Funktion 1 (JS-Ajax) mit Funktion 2 (php-query). Deswegen also die grobe Richtung : php-code wirft beide Daten unterteilt aus und im JS-Teil müssen aus dem Antworttext beide Daten extrahiert werden. Es gilt eigentlich nur, im php-Teil beide Daten abzufragen, jene mit diesem Trenner zu unterscheiden, damit man im JS-Teil eindeutig auf 2 Werte zugreifen kann.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

Ähnliche Themen

  1. Aufklapplink für Div's | Mehrere Divs gleichzeitig aufgeklappt ?
    Von pseudobrain im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 11.07.08, 11:39
  2. Mehrere Tabellenreihen gleichzeitig ansprechen
    Von mammuteffect im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 25.08.07, 00:06
  3. zu Anker springen gleichzeitig divs einblenden
    Von megatom im Forum Javascript & Ajax
    Antworten: 13
    Letzter Beitrag: 29.06.07, 21:27
  4. Zwei Pics per Link gleichzeitig ansprechen?
    Von SixxKiller im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 19.01.07, 22:13
  5. MYSQL: Mehrere Datensätze gleichzeitig ansprechen
    Von Sandro18 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 13.09.06, 11:14