Actibus Skrevet 29. oktober 2011 Del Skrevet 29. oktober 2011 (endret) Litt usikker på om denne burde i denne kategorien, eller php, inneholder begge deler.. Har her en fungerende autocomplete, men ønsker at resultatet også skal ta hensyn til hva som står i tekstboks med navn "kundenummer" når den søker, hvordan får jeg den verdien med over til php scriptet? Koden er hentet fra en tutorial og endret litt, men har ekstremt liten kjennskap til javascript <script type="text/javascript"> $(document).ready(function(){ var ac_config = { source: "demo_citiesB.php", select: function(event, ui){ $("#nykontaktperson").val(ui.item.navn); $("#kontakttlf").val(ui.item.telefon); }, minLength:1 }; $("#nykontaktperson").autocomplete(ac_config); }); </script> Php script ser jeg for meg at vil da se slik ut: <?php // Data could be pulled from a DB or other source $con = mysql_connect("localhost",***","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("torkrist_service", $con); $kundenr = **kundenr hentet ifra tekstboks "kundenr" på siden med js** $citiesint = array(); $result = mysql_query("SELECT navn, telefon FROM kundekontakter WHERE kundenr =$kundenr ",$con) or die (mysql_error()); while( $row = mysql_fetch_assoc( $result ) ) { $citiesint[] = $row; } $cities = $citiesint; // Cleaning up the term $term = trim(strip_tags($_GET['term'])); // Rudimentary search $matches = array(); foreach($cities as $city){ if(stripos($city['navn'], $term) !== false){ // Add the necessary "value" and "label" fields and append to result set $city['value'] = $city['navn']; $city['label'] = "{$city['navn']}, {$city['telefon']}"; $matches[] = $city; } } // Truncate, encode and return the results $matches = array_slice($matches, 0, 5); print json_encode($matches); Endret 29. oktober 2011 av Actibus Lenke til kommentar
BlueEAGLE Skrevet 29. oktober 2011 Del Skrevet 29. oktober 2011 PHP er et serverside-språk og du kan sende data til et PHP-skript via $_GET og $_POST samt ved litt småkakemagi men det er skittent og for viderekomne. Som oftest så er $_GET-variabler enklest men dette er ikke en spesielt trygg form for kommunikasjon og du må passe på å vaske alt spesielt nøye når du tar i mot og behandler $_GET-variabler. En $_GET-variabel ligger i URI som for eksempel http://php.example.com/page.php?Page=Jalla&Paula=Brillant i skriptet page.php så har du nå tilgang til $_GET['Page'] og $_GET['Paula'] som inneholder henholdsvis 'Jalla' og 'Brillant'. Når det gjelder $_POST-variabler så blir disse som oftest sendt i skjema av typen <FORM METHOD="POST" ACTION="http://php.example.com/page.php><INPUT TYPE="HIDDEN" NAME="Page" Value="Jalla"><INPUT TYPE ="TEXT" Name="Paula" Value="Brillant"><INPUT TYPE="SUBMIT"></FORM>. Når du trykker på submit så har page.php tilgang til $_POST['Page'] med verdien 'Jalla' og $_POST['Paula'] som inneholder 'Brillant' eller det som er skrevet i tekstboksen. Håper det hjelper. Lenke til kommentar
Occi Skrevet 29. oktober 2011 Del Skrevet 29. oktober 2011 Script jeg har laget for å sjekke om et postnummer finnes i databasen. Kanskje du klarer å skjønne syntaxen utifra det. Merk at det er litt gammelt, så er litt feil med $this osv. pga. jeg ikke hadde lært meg det helt enda, men strukturen er OK. HTML-input <input type="text" name="regPostnr"> <input type="submit" value="Registrer" onclick="return sjekkRegInput()"> Javascript-biten (jQuery) function sjekkRegInput() { // henter input // sjekker om felter er satt osv., hvis OK, sjekker postnr vha. sjekkPostnr(pnrInput) // hvis false (se nedenfor) printer ut feilmelding } function sjekkPostnr(pnrInput) { if(pnrInput != null) { $.ajax({ url: 'php/sjekkPostNr_do.php', type: 'POST', async: false, data: ({ pnr: pnrInput // $_POST['pnr'] = pnrInput, dvs. postnummer skrevet inn }), success: function(data) { result = data == "1"; // hvis data == "1", result = true } }); return result; // return true = form går igjennom } return false; // true ikke returnert, dvs. submit går ikke igjennom } PHP-side som tar imot post og bruker klasse <?php require("../classes/sjekkPostNr.php"); $pnr = $_POST['pnr']; $sjekkPostNr = new SjekkPostNr($pnr); $sjekkPostNr->sjekkPostNr(); ?> PHP-klasse <?php require("db_connect.php"); class SjekkPostNr { private $pnr; private $db_connect, $db, $query, $result, $rows; public function __construct($pnr) { $this->pnr = $pnr; $this->db_connect = new DB_Connect(); $this->db = $this->db_connect->getDB(); } public function sjekkPostNr() { if($this->db != null) { $this->query = sprintf("SELECT Postnr, Poststed FROM WS_Post WHERE Postnr = '%s'", $this->db->real_escape_string($this->pnr)); $this->result = $this->db->query($this->query); if($this->result) { $this->rows = $this->result->num_rows; if($this->rows > 0) { echo "1"; } else { echo "0"; } } else { echo "0"; } } else { echo "0"; } } } ?> Lenke til kommentar
Actibus Skrevet 29. oktober 2011 Forfatter Del Skrevet 29. oktober 2011 (endret) Edit: Fikk ordnet det, fant ut at jeg kunne jo bare bruke samme stringen den allerede sendte over for å snevre inn søket. Kan vel ikke bruke POST iogmed at jeg faktisk ikke sender inn skjemaet (form) før alt er utfylt, javascriptet brukes for å fylle ut felter i skjemaet før det sendes. Den klarer jo å sende søkestringen min over til php scriptet, uten å laste inn siden på nytt, så burde jo være mulig å få den til å sende over en ting til til samme script? Endret 29. oktober 2011 av Actibus Lenke til kommentar
Occi Skrevet 29. oktober 2011 Del Skrevet 29. oktober 2011 Med ajax kan du bruke post til et PHP-script, akkurat som jeg viste med koden min ovenfor. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå