zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Ajax: php formular absenden und ergebnisse auf selbe seite in div laden?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.03.2010, 19:26
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard Ajax: php formular absenden und ergebnisse auf selbe seite in div laden?

Hallo,
ich würde gerne für ein schnelles Uni-Projekt folgendes realisieren.
Ein Inputfeld feuert eine google-Suche und das Suchergebniss soll auf meine eigene Seite per Ajax geladen werden?

Dazu habe ich schon mal eine index.php mit einem Formular und einem inputfeld erstellt.

PHP-Code:
    <script type="text/javascript" src="js/jquery-1.4.min.js"></script>
    <script type="text/javascript" src="js/scripts.js"></script>
    <?php
        
include 's.php';
    
?>
</head>
<body>
<div id="wrapper">    
    <form id="formular" method="post" action="">
        <input autocomplete="off" tabindex="1" type="text" name="term" id="term" size="" value=""/>
        <input id="submit" type="submit" name="submit" value="Search" />
    </form>
</div>
<div id="results"></div>
</body>
</html>
Da ich leider nicht weiter weiß, feuere ich jetzt einfach mal einen meta-refresh mit der google Anfrage. Das funktioniert schon wunderbar.

PHP-Code:
<?php
if(isset($_POST['term'])){

    
$term $_POST['term'];
        
//redirect
        
$google_query "http://www.google.com/search?q=";
        print 
"<meta http-equiv=\"refresh\" content=\"0;URL=" $google_query $term ."\">";

}
?>
Jetzt würde ich noch gerne, anstatt die Anfrage auf google umzuleiten. Die google Suchergebnisse auf meiner eigenen Seite in den div-contaiener #results laden.

Wie kann ich das angehen? mit jquery gibts ja ein load() wo ich Serverrequests ohne refresh ausführen kann. Leider weiß ich in dem Fall nicht wie ich vorgehen muss.

Danke für die Hilfe
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 19.03.2010, 19:36
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

$('#result').load('http://www.google.com/search?q=Toter+Oktober');
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 19.03.2010, 23:25
Benutzer
neuer user
 
Registriert seit: 06.03.2010
Beiträge: 34
qwert befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sepp88 Beitrag anzeigen
Jetzt würde ich noch gerne, anstatt die Anfrage auf google umzuleiten. Die google Suchergebnisse auf meiner eigenen Seite in den div-contaiener #results laden.
Darf man sowas denn machen?


Zitat:
Zitat von sepp88 Beitrag anzeigen
mit jquery gibts ja ein load() wo ich Serverrequests ohne refresh ausführen kann. Leider weiß ich in dem Fall nicht wie ich vorgehen muss.
Das load() von jQuery ist vermutlich ein Ajax-Get. Das funktioniert aber nicht auf einer anderen Domain. Same Origin Policy.
Mit Zitat antworten
  #4 (permalink)  
Alt 20.03.2010, 10:37
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
$('#result').load('http://www.google.com/search?q=Toter+Oktober');
Das funktioniert nicht! Das GET wird laut firebug zwar gefeuert, wird mir aber rot markiert und Antwort gibt es keine.

Ich schließe mich der Frage von "qwert" an: Darf man das theoretisch überhaupt. Die Suchergebnisse von google auf der eigenen Seite einbinden?
Für das kleine Uni-Projekt wär mir das jetzt relativ wurst, da das nicht veröffentlicht wird, aber interessant wärs trotzdem.

edit: Kann ich ohne jquery die Serveranfrage von google z.b. in ein Div laden, oder in einen Frame? Hauptsache ich nutze google, aber ich verlasse nie meine eigene Seite _ das wäre mein Ziel.
Mit Zitat antworten
  #5 (permalink)  
Alt 20.03.2010, 10:39
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ups. Probier mal ohne das "http://"
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #6 (permalink)  
Alt 20.03.2010, 10:46
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

hab ich schon probiert. Da wird die angeforderte URL an meinen domainnamen gehängt!
Ohne das http:// zeigt mir firebug: GET http://meinedomain.de/www.google.com...
Mit Zitat antworten
  #7 (permalink)  
Alt 20.03.2010, 11:06
Benutzerbild von hemfrie
Administrator
XHTMLforum-Kenner
 
Registriert seit: 18.12.2003
Ort: Düsseldorf
Beiträge: 2.777
hemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannt
Standard

qwert hat es doch schon geschrieben. Cross Domain Ajax Request sind nicht möglich. (cross domain policy)


Ich vermute auch, dass Google die Idee ansich nicht besonders gut finden würde.

Wenns nur ein Uni Spielprojekt sein wird, kannst Du mit Hilfe der Yahoo Query Language (YQL) dennoch zum Ziel kommen.

Yahoo! Query Language - YDN

Hier mal ein Beispiel wie Du es umsetzen könntest:

javascript:
PHP-Code:
$('#searchform').submit(function()
{
    var 
term = $('#term').val();
    
mysearch(term);
    return 
false;
});


function  
mysearch(term)
{
    var 
output = $('#output');
    
output.html('');

    
/* Die eigentliche YQL Abfrage */
    
var myQuery 'select title, content, url from google.search where q  = "' term '" and gl="de" and hl="de"'

    
/* URL zum  Ergebnis (JSON) */
    
var yql 'http://query.yahooapis.com/v1/public/yql?q='  encodeURIComponent(myQuery) + '&format=json&diagnostics=false&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?';

    
/* Auswertung und Ausgabe */
    
$.getJSON(yql, function(results)
    {
        var 
resultArr results.query.results.results;

         $.
each(resultArr,  function(ival)
        {
             
output.append('<p>' val.title '<br />' val.content '<br />' val.url '</p>');
        });
    });

Live Beispiel - YQL google query - jsFiddle - Online Editor for the Web (JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML, CSS)

Du müsstest Dich allerdings ein wenig mit YQL auseinandersetzen. Das hier auf die schnelle zu Erklären ist etwas schwierig.
Mit Zitat antworten
  #8 (permalink)  
Alt 20.03.2010, 11:18
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

Danke, das schau ich mir gleich mal an.

Und mit einfachem php geht das ganze nicht? Ich habe ja im Grunde schon ein funktionierendes Beispiel, das halt derzeit mit einem meta-refresh auf google umleitet. Kann ich die aufgerufene google Seite nicht in einem DIV oder Frame laden?
Mit Zitat antworten
  #9 (permalink)  
Alt 20.03.2010, 11:25
Benutzerbild von hemfrie
Administrator
XHTMLforum-Kenner
 
Registriert seit: 18.12.2003
Ort: Düsseldorf
Beiträge: 2.777
hemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannthemfrie ist jedem bekannt
Standard

Du hast von Ajax gesprochen, deshalb hab ich dieses Ajax Beispiel gemacht.

Mit PHP kannst Du genauso auf YQL zugreifen.

Und wenn Du die komplette Google Ergebnisseite in einem Iframe ausgeben willst brauchst Du doch nur Deine erzeugte Google URL als src value angeben.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 20.03.2010, 15:39
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von sepp88 Beitrag anzeigen
Und mit einfachem php geht das ganze nicht? Ich habe ja im Grunde schon ein funktionierendes Beispiel, das halt derzeit mit einem meta-refresh auf google umleitet. Kann ich die aufgerufene google Seite nicht in einem DIV oder Frame laden?
Es geht mit einem einfachen PHP und es geht in einem iframe.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Seite in einem DIV laden/reloaden Schneemann Javascript & Ajax 1 07.04.2007 19:57
PHP Skript macht meine Seite unvalide X-TREM Barrierefreiheit 5 20.02.2007 12:17
PHP Formular |SONY| Serveradministration und serverseitige Scripte 7 07.12.2006 19:28
flexibles Div soll Div mit fester Breite links umfliessen? braindead CSS 3 23.09.2006 12:58
Problem mit DIV -Bild soll am unteren Ende der Seite bleiben thomas :D CSS 1 31.12.2005 01:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:35 Uhr.