• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Mein JavaScript wird nicht eingelesen oder ausgeführt?

danielt

New member
Hallo zusammen, bin bald zu ende mit meiner Arbeit doch das Javscript wird entweder in meinem HTML nicht eingelesen oder nciht ausgeführt ...

Das HTML Dokument
Code:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Weather</title>
    <link href="styling.css" rel="stylesheet" type="text/css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <script src="main.js" type="text/javascript"></script>
</head>
<body class="background">

<div class="header">
    <h1>
        Weather
    </h1>
</div>

<div id="content" class="content">
    <form onClick="phpToHTML();" method="post">
        City: <input type="text" name="city" />
        <input type="submit" id="driver" value="Load Data" />
    </form>
</div>

</body>
</html>

Das PHP sollte die Eingabe nehmen die im HTML Formular eingegeben und abgesendet wurde.
Die dann in die Variable $city einsetzten und die dann im $json verwenden.
Code:
<?php
function getJson () {
$city = $_POST['city'];
$json = file_get_contents("http://api.openweathermap.org/data/2.5/find?q=".$city."&units=metric");
echo $json;
}
getJson();
?>

Das JS ist dazu verpflichtet die Daten aus dem PHP zu lesen und die schön Strukurieren und die dann im HTML anzeigen (PHP liest eine JSON datei aus).
Code:
function phpToHTML() {
    $(document).ready(function() {
        $("#driver").onsubmit(function(event){
            $.getJSON('weather.php', function(jd) {
                $('#content').html('<p> Message: ' + jd.message + '</p>');
                $('#content').append('<p>Cod : ' + jd.cod+ '</p>');
                $('#content').append('<p> Count: ' + jd.count+ '</p>');
                var jdlist = jd.list;
                for (var i = 0; i < jdlist.length; i++) {
                    $('#content').append('<p> ID: ' + jd.list[i].id+ '</p>');
                    $('#content').append('<p> Name: ' + jd.list[i].name+ '</p>');
                    $('#content').append('<p> Coord - Lon: ' + jd.list[i].coord.lon+ '</p>');
                    $('#content').append('<p> Coord - Lat: ' + jd.list[i].coord.lat+ '</p>');
                    $('#content').append('<p> Main - Temp: ' + jd.list[i].main.temp+ '</p>');
                    $('#content').append('<p> Main - Pressure: ' + jd.list[i].main.pressure+ '</p>');
                    $('#content').append('<p> Main - Humidity: ' + jd.list[i].main.humidity+ '</p>');
                    $('#content').append('<p> Main - Temp Min.: ' + jd.list[i].main.temp_min+ '</p>');
                    $('#content').append('<p> Main - Temp Max.: ' + jd.list[i].main.temp_max+ '</p>');
                    $('#content').append('<p> DT: ' + jd.list[i].dt+ '</p>');
                    $('#content').append('<p> Wind - Speed: ' + jd.list[i].wind.speed+ '</p>');
                    $('#content').append('<p> Wind - Deg: ' + jd.list[i].wind.deg+ '</p>');
                    $('#content').append('<p> Wind - Var Begin: ' + jd.list[i].wind.var_beg+ '</p>');
                    $('#content').append('<p> Wind - Var End: ' + jd.list[i].wind.var_end+ '</p>');
                    $('#content').append('<p> Country: ' + jd.list[i].sys.country+ '</p>');
                    $('#content').append('<p> All Clouds: ' + jd.list[i].clouds.all+ '</p>');

                    var weatherlist = jdlist[i].weather;
                    for (var i = 0; i < weatherlist.length ; i++) {
                        $('#content').append('<p> Weather - ID: ' + weatherlist[i].id+ '</p>');
                        $('#content').append('<p> Weather - Main: ' + weatherlist[i].main+ '</p>');
                        $('#content').append('<p> Weather - Description: ' + weatherlist[i].description+ '</p>');
                        $('#content').append('<p> Weather - Icon: ' + weatherlist[i].icon+ '</p>');
                    }
                }
            })
        })
    })
}
 
Welchen meinst du?

Habe dir von allen Dateien den Code geschickt bis auf das Json da es gar keine statische JSON datei gibt...

Also das ziel ist so.

Ich gebe etwas ins Formular ein, das PHP liest es ein.
Setzt das eingelesene in eine Variable ($city)...
Speichert dann das in eine variable:
Code:
http://api.openweathermap.org/data/2.5/find?q=".$city."&units=metric
und das ist dann mein json.
Nun sollte das javascript dieses json auslesen schöner strukturieren und es im HTML ausgeben....

welchen code meinst du genau?
 
HTML Quelltext im Browser:

Code:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Weather</title>
    <link href="styling.css" rel="stylesheet" type="text/css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <script src="main.js" type="text/javascript"></script>
</head>
<body class="background">

<div class="header">
    <h1>
        Weather
    </h1>
</div>

<div id="content" class="content">
    <form onClick="phpToHTML();" method="post">
        City: <input type="text" name="city" />
        <input type="submit" id="driver" value="Load Data" />
    </form>

</div>

</body>
</html>


JS im Browser

Code:
/*
 * Autor: Daniel Trifunovic
 * Datum: 22.09.2014
 */

function phpToHTML() {
    $(document).ready(function() {
        $("#driver").onsubmit(function(event){
            $.getJSON('weather.php', function(jd) {
                $('#content').html('<p> Message: ' + jd.message + '</p>');
                $('#content').append('<p>Cod : ' + jd.cod+ '</p>');
                $('#content').append('<p> Count: ' + jd.count+ '</p>');
                var jdlist = jd.list;
                for (var i = 0; i < jdlist.length; i++) {
                    $('#content').append('<p> ID: ' + jd.list[i].id+ '</p>');
                    $('#content').append('<p> Name: ' + jd.list[i].name+ '</p>');
                    $('#content').append('<p> Coord - Lon: ' + jd.list[i].coord.lon+ '</p>');
                    $('#content').append('<p> Coord - Lat: ' + jd.list[i].coord.lat+ '</p>');
                    $('#content').append('<p> Main - Temp: ' + jd.list[i].main.temp+ '</p>');
                    $('#content').append('<p> Main - Pressure: ' + jd.list[i].main.pressure+ '</p>');
                    $('#content').append('<p> Main - Humidity: ' + jd.list[i].main.humidity+ '</p>');
                    $('#content').append('<p> Main - Temp Min.: ' + jd.list[i].main.temp_min+ '</p>');
                    $('#content').append('<p> Main - Temp Max.: ' + jd.list[i].main.temp_max+ '</p>');
                    $('#content').append('<p> DT: ' + jd.list[i].dt+ '</p>');
                    $('#content').append('<p> Wind - Speed: ' + jd.list[i].wind.speed+ '</p>');
                    $('#content').append('<p> Wind - Deg: ' + jd.list[i].wind.deg+ '</p>');
                    $('#content').append('<p> Wind - Var Begin: ' + jd.list[i].wind.var_beg+ '</p>');
                    $('#content').append('<p> Wind - Var End: ' + jd.list[i].wind.var_end+ '</p>');
                    $('#content').append('<p> Country: ' + jd.list[i].sys.country+ '</p>');
                    $('#content').append('<p> All Clouds: ' + jd.list[i].clouds.all+ '</p>');

                    var weatherlist = jdlist[i].weather;
                    for (var i = 0; i < weatherlist.length ; i++) {
                        $('#content').append('<p> Weather - ID: ' + weatherlist[i].id+ '</p>');
                        $('#content').append('<p> Weather - Main: ' + weatherlist[i].main+ '</p>');
                        $('#content').append('<p> Weather - Description: ' + weatherlist[i].description+ '</p>');
                        $('#content').append('<p> Weather - Icon: ' + weatherlist[i].icon+ '</p>');
                    }
                }
            })
        })
    })
    
}

php im browser nach einer eingabe im forumlar bsp. london
Code:
{"message":"accurate","cod":"200","count":2,"list":[{"id":6058560,"name":"London","coord":{"lon":-81.23304,"lat":42.983391},"main":{"temp":13.1,"pressure":1029,"humidity":93,"temp_min":11,"temp_max":14},"dt":1411632330,"wind":{"speed":2.6,"deg":90},"sys":{"country":"CA"},"clouds":{"all":5},"weather":[{"id":800,"main":"Clear","description":"Sky is Clear","icon":"02n"}]},{"id":2643743,"name":"London","coord":{"lon":-0.12574,"lat":51.50853},"main":{"temp":10.05,"pressure":1020,"humidity":76,"temp_min":6.67,"temp_max":12.78},"dt":1411632604,"wind":{"speed":4.1,"deg":250},"sys":{"country":"GB"},"clouds":{"all":0},"weather":[{"id":800,"main":"Clear","description":"Sky is Clear","icon":"01d"}]}]}
 
Also das ziel ist so.

Ich gebe etwas ins Formular ein, das PHP liest es ein.
Setzt das eingelesene in eine Variable ($city)...
Speichert dann das in eine variable:
Code:
http://api.openweathermap.org/data/2.5/find?q=".$city."&units=metric
und das ist dann mein json.
Nun sollte das javascript dieses json auslesen schöner strukturieren und es im HTML ausgeben....
hä?
du gibst etwas ins formular ein => ok
das PHP liest es ein => was? du schickst das formular ab, an ein php-script meinst du vermutlich
Speichert dann das in eine variable => ich sehe keine variable, was gibt das php-script an den browser zurück?
und das ist dann mein json => was ist dein json? die variable von oben? was passiert mit der?
Nun sollte das javascript dieses json auslesen schöner strukturieren und es im HTML ausgeben => du generierst mit der variablen ein stück js mit json-daten in die zurückgesendete seite und willst diese dann mit js auswerten?
 
@mikdoe da es verschiedene dateien sind?

@hesst

Die eingabe im Formular wird mit
Code:
$city = $_POST['city'];
abgefangen und in eine variable gespeichert... sind wir uns beide einig oder?
diese variable wird dann hier verwendet
Code:
$json = file_get_contents("http://api.openweathermap.org/data/2.5/find?q=".$city."&units=metric");
Das City ist die Variable für eine beliebige stadt... danach gibt mr die seite openweather ein json zurück mit den angaben des wetters dieser stadt. das wird in die $json variable gespeichert.
diese wird dann aufgerufen mit echo ...
so...

nun sollte das js diesen aufruf des php's nehmen und schöner gestalten und das wieder auf mein html dokument zurück senden...

verstanden?
 
hier binde ich noch das ein

<script src="main.js" type="text/javascript"></script>

könnt ihr mir ein paar beispiele nennen wie ich es lösen kann mit hilfe einzelnen code teilchen?
 
Zuletzt bearbeitet von einem Moderator:
könnt ihr mir ein paar beispiele nennen wie ich es lösen kann mit hilfe einzelnen code teilchen?
entweder baust du dir die seite gleich mit php so zusammen, wie du sie möchtest, oder aber du baust in php nur das grundgerüst zusammen, mit dem json daten als js-variable und greifst mit deinem js auf diese variable zu und baust die seite zuende
 
das problem dabei ist...
meine aufgabe ist so

das php muss das json auslesen
und javascript muss es strukturiert im html anzeigen lassen
 
1. dass dein Server bei file_get_contents() auch URL annimmut und dann den HTTP-Request durchführt ist ein Sicherheitsloch.
2. So wie ich das sehe, fehlt da einfach ein
Code:
event.preventDefault()
im onsubmit-Eventlistener:
Code:
	$("#driver").onsubmit(function(event){
		event.preventDefault();
		...
	});
 
Zurück
Oben