Vecka 06, Måndag 6 Februari 2012 Prenumerera

Arkiv för kategori ‘PHP’

Ajax med jQuery och PHP

onsdag, 6 oktober, 2010

Ajax har blivit enkelt med jQuery och PHP. Tja, det mesta har blivit enkelt med jQuery, plötsligt är man Javascriptexpert ;) Ett exempel bara för att visa…

Vi börjar med ett inkludera jQuery, för att slippa ladda hem filen laddar vi från Google. Skapa ett HTML-dokument och klipp in den här raden i HTML-dokumentes head:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

Skapa ett javscript block. Där kallar vi på jQuery med $(document).ready :

<script type="text/javascript">
    // jQuery listening event
    $(document).ready(function(){
    });
</script>

Vi behöver något HTML-element att arbeta med, så jag skapar en div i HTML-dokumentets <body>-tagg:

<div id="getmytime"></div>

Tillbaka till javascript-blocket. jQuery har en funktion som heter $.get. Den gör samma sak som om vi kallar på ett script och skickar data i adressraden som querystring (eller skickar formulär med method=”get”). $.get anropar ett PHP-script vi snart ska göra, och returnerar data.

Så här ser mitt anrop med $.get ut

		// Call the PHP file to  get value into the div on load
		// I also send the variable format with the call (would be similar to sending the url mytime.php?format=(Y-m-d) H:i:s)
		$.get('mytime.php', { format: '(Y-m-d) H:i:s' }, function(data) {
			$("#getmytime").html(data);
		});

Ser det rörigt ut? Det är javascript function med 3 argument:

  1. Adressen till vårt PHP-script (‘mytime.php’)
  2. Variabler vi vill skicka med, jag skickar med variabeln ”format”. Den här kan du ta bort om du vill. { format: '(Y-m-d) H:i:s' }. ‘(Y-m-d) H:i:s’ skulle kunna varit vad som helst för värde, nu råkar det vara datumformatet jag vill använda.
  3. Det tredje argumentet är en function som avgör vad som ska hända med datan som returneras från skriptet. function(data) {}.

När data skickas tillbaka vill jag ladda det till div-taggen i HTML-dokumentet. Jag använder jQuery functionen .html() för att lägga in data i en div.

$("#getmytime").html(data);

Dags att skapa mytime.php – vi måste ju förstås ha PHP-filen som returnerar någon data. Jag gör den väldigt kort, den skriver ut värdet från PHP-funktionen date(), om ett värde skickats in i $_GET['format'] använder jag det för att sätta formatet på mitt datum. Så här (det här är hela PHP-filen mytime.php):

<?php
if (isset($_GET['format'])) {
	echo date($_GET['format']);
} else {
	echo date('Y-m-d H:i:s');	
}
?>

Nu laddas rätt datum till HTML-filen när du öppnar sidan i webbläsaren. Men vi vill att det ska uppdateras när du klickar utan att sidan uppdateras. Det är ju trots allt det som är den stora grejen med Ajax, att ladda dynamisk data utan att ladda om hel sidan. Vi lägger till en av jQuery event-handlers (”händelse-hanterare”), .click(). Inom den kör jag samma .get som när sidan laddas:

	// If you click the div#getmytime, the time updates
	$("#getmytime").click(function() {
		// Call the php file. Just to show things change I alter the format argument
		$.get('mytime.php', { format: 'j F H:i:s' }, function(data) {
			$("#getmytime").html(data);
		});
	})

Koden ovan lyssnar alltså på klick i vår div-tagg med id getmytime, och hämtar in PHP-skriptet när något klickar. Bara för visa att något ändras har jag angivet ett annat format på datumet. Jag antar, och hoppas, du kan komma på många mer spännande saker med det här än att visa tiden ;)

Här kan du ladda hem scriptet som ZIP-fil. Det består av filerna

  • index.html
  • mytime.php
  • style.css

Mer kan du lära dig genom att gå vår PHP-kurs, anmäl dig här!

Glöm inte funktionerna i SQL

torsdag, 28 januari, 2010

Ibland känner jag att man glömmer funktionerna i SQL (den tekniken vi använder för kommunicerar med databasen). I mycket litteratur och annat jag ser lär man sig SELECT, INSERT, UPDATE och sedan inte mycket mer. Alla operationer görs sedan i PHP-koden. Men till exempel MySQL har många inbyggda funktioner, som kan vara snabbare att använda och som sparar mycket kod.

Jag råkade här om dagen på ett inlägg av David Walsh, ”MySQL’s REPLACE is PHP’s STR_REPLACE()”, där han ersätter text med MySQLs gunktion istället för PHPs. Senast idag kunde jag använt en när jag flytta en WordPress Mu blogg till en annan server och skulle ersätta alla sökvägar (men med backup först!)

1
UPDATE mytable SET content = REPLACE(content,'kurswebben.se','phpkurs.se');

Reguljära uttryck i PHP

måndag, 11 maj, 2009

Reguljära uttryck (eng. regular expressions, ibland kallat regexp) är ett en mycket användbart litet smart sökverktyg som hjälper dig spå. Det är inte specifikt för PHP utan används i olika tekniker.

Vad använder man reguljära uttryck till?
Exempel: besökaren på din webbplats ska fylla i en e-postadress. Du vill kontrollerad att det verkligen kan vara en e-postadress och inget ondskefullt sätt att hacka ditt mailscript (eller kanske en felstavning etc). Men e-postadresser är ju olika och du kan inte på förhand säga vad användaren fyller i, hur ska du då kontrollera att den är korrekt?

Med reguljära uttryck kan du göra ett mönster (eng. pattern) som du testar adressen mot. Du vet t.ex. att det kommer innehåll några tecken mellan a och z (mönster [a-z]+). Ett snabel-a. Sedan några tecken till mellan a-z och till sist en punkt + topdomän. Till exempel me@enmailadress.com. Nåja, nu är det lite mer komplicerat eftersom e-postadresser kan ha fler variationer, men du förstår poängen?

Att använda mönstret i PHP
Det finns en rad funktioner i PHP för att använda reguljära uttryck, de som du kanske ska börja med att titta på är preg_match() (för att testa en textsträng mot ett mönster) och preg_replace() (för att ersätta innehåll efter ett mönster).
(Läs mer…)

Följ med PHP-kurs på Twitter

måndag, 11 maj, 2009

Jag har upptäckt hur effektivt det kan vara att skapa nätverk på Twitter och få kontakter inom specifika ämnen. Nu finns det även att konto för PHPkurs, förutom vårt gemensamma för Kurswebben. Häng gärna på, twittra mig på @PHPkurs, @Kurswebben eller skriv ditt Twitter-konto i en kommentar!

PHPkurs på Twitter + felstavning

PHPkurs på Twitter + felstavning

Läs även andra bloggares åsikter om php, webbutveckling, social media, nätverkande, kurswebben

Vad händer i PHPs framtid?

fredag, 8 maj, 2009

IBM skriver om PHPs framtid och vad som kommer i version 6. Värt att läsa. Några nyheter känns självklara, som att ”register globals” försvinner – en gammal säkerhetsrisk som ändå ofta är avstängd. ereg-funktionern för reguljära uttryck försvinner, använd preg-funktionerna istället.

En vision av PHPs framtid

En vision av PHPs framtid

Läs även andra bloggares åsikter om php, framtid, versioner, webbutveckling