ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Mmmm... så långt är jag med har ett formulär som jag har fått lite hjälp med osv. Nu då skulle jag vilja ha in detta i det formuäret. Och där har jag ingen aning om hur jag gör. Vet att man måste öppna databasen med användarnamn lösen localhost och databas namnet. Men sedan för att hitta i databasen och skriva ut i formuläret har jag ingen aning om hur man gör. Är det svårt att förklara ?
I ditt html-formulär ska "action" vara adressen till ditt php-script och metoden ska vara "post":
<form method="post" action="insert.php">
För att ansluta och läsa ut data så gör du nåt liknande:
<?php
// Make a MySQL Connection
mysql_connect("localhost", "admin", "1admin") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
// Retrieve all the data from the "example" table
$result = mysql_query("SELECT * FROM table_name")
or die(mysql_error());
// store the record of the "example" table into $row
$row = mysql_fetch_array( $result );
// Print out the contents of the entry
echo "Firmanamn: ".$row['firma_namn'];
echo " Kundnr: ".$row['kundnr'];
?>
Vill du lägga in data så får du göra en INSERT istället för SELECT. Språket du använder för att kommunicera med databasen är SQL.
Okej då är jag med. Men nu skriver den ut detta med echo ser jag. Om jag vill att den skriver ut det i formulärets textfält hur gör jag då ?
För tanken är att man skall endast skriva i sitt kundnummer i ett textfält i formuläret också skrivs företagets, namn, adress osv ut i vissa text fält i formuläret.
Måste man inte skriva i typ detta i formuläretskodning i textfältet ? $kundnr osv
ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Okej då är jag med. Men nu skriver den ut detta med echo ser jag. Om jag vill att den skriver ut det i formulärets textfält hur gör jag då ?
För tanken är att man skall endast skriva i sitt kundnummer i ett textfält i formuläret också skrivs företagets, namn, adress osv ut i vissa text fält i formuläret.
Måste man inte skriva i typ detta i formuläretskodning i textfältet ? $kundnr osv
Du kan skriva värdena i formulär med:
echo 'Firmanamn: <input type="text" name="firma_namn" value="'.$row['firma_namn'].'"/>';
echo ' Kundnr: <input type="text" name="kundnr" value="'.$row['kundnr'].'"/>';
Men det kommer inte att fungera så som du beskrev. Vill du ha det så, så måste du hämta informationen asynkront med JavaScript. Då använder man sig av en teknik som kallas för Ajax. Se t.ex. http://www.w3schools.com/ajax/default.asp
Okej men om man vill att det bara skall skrivas ut utan textfält hur gör man då ?
ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Okej men om man vill att det bara skall skrivas ut utan textfält hur gör man då ?
Precis så som jag visade innan:
echo "Firmanamn: ".$row['firma_namn'];
echo " Kundnr: ".$row['kundnr'];
Okaj !
Men hur ser koden ut om besökaren skriver in sitt kundnummer i ett textfält så kommer adressern fram ?
ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Okaj !
Men hur ser koden ut om besökaren skriver in sitt kundnummer i ett textfält så kommer adressern fram ?
För att få den funktionaliteten måste du använda AJAX. Så börja med att läsa på om det: http://www.w3schools.com/ajax/default.asp.
Du måste använda JavaScript på din sida för att göra ett asynkront anrop till din server. På servern tar ett PHP-script emot anropet och hämtar data från databasen och skickar det som svar. Sen måste du använda JavaScript på din sida igen för att ta emot svaret från servern och skriva svaret i textfälten.
Aj då det låter som ett större jobb. Finns inte på något sett med hjälp av php att få fram det så som jag frågade om fast på något annat sett ?
ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Aj då det låter som ett större jobb. Finns inte på något sett med hjälp av php att få fram det så som jag frågade om fast på något annat sett ?
PHP körs bara på servern. Men du frågar efter funktionalitet på klienten, dvs att data ska hämtas när användaren skriver in saker i ett textfält. På webbsidor (klientsidan) används JavaScript som programmeringsspråk.
Vill du lösa det helt i PHP (helt på server-sidan) så får du ha ett textfält där kunden skriver sitt kundnummer. Sen får kunden klicka på en knapp. Sen visar du en ny sida med kundens adress mm.
Ja absolut kan man fixa det så ?
Har du lust och ork att guide mig till det ?
ercizMedlem sedan maj 20011 826 inlägg Först ett formulär där kunden kan mata in sitt kundnummer:
<form method="post" action="lookup.php">
<label for="kundnr">Kund nr:</label>
<input type="text" name="kundnr" id="kundnr"/>
<input type="submit" value="Hämta adress">
</form>
Sen får du hämta data från databasen som jag visade dig tidigare, och använda en databas-fråga liknande (den här är lätt att förstå men inte säker):
mysql_query('SELECT * FROM kunder WHERE kundnr = '.$_POST['kundnr']);
Du bör kontrollera att $_POST['kundnr'] verkligen innehåller ett heltal innan du använder det i din SQL-sats egentligen.
Sen får du skriva ut resultatet som du vill ha det, enligt tidigare inlägg här i tråden...
Vad menar du med inte säkert ?
ercizMedlem sedan maj 20011 826 inlägg Det är inte säkert mot SQL-injektioner
Okej !
Så först gör man ett formulär där kunden skriver in kundnumret sedan skickas kunden till sidan lookup.php där kundens uppgifter kommer fram från databasen fattar jag det rätt ? :)
Okej.
Men hur får jag med kundens adress när man skickar formuläret när det endast skrivs ut med echo ?
Mitt formulär ser ut som följande
http://paste.ubuntu.com/588568/
Detta formuläret hade jag tänkt mig att få in detta med databasen m.m.
ercizMedlem sedan maj 20011 826 inlägg
Forcevision skrev:
Men hur får jag med kundens adress när man skickar formuläret när det endast skrivs ut med echo ?
Du skriver ut adressen i ett textfält, som jag visade tidigare.
Yes då är jag med :)
En fråga till om samma formulär.
Om jag vill få in annat typsnitt färg m.m med hjälp av css så det syns i mailet man får går detta och hur gör man i så fall ?
På samma sätt som du gör på en HTML sida, inkludera CSS kod (inline på dina element då HTML och mail-klienter är inte direkt kända på att vara flexibla).