jquery - Ajax Select, getting data out of database with select -
how value out of database using following: user selects id (i.e 1) within <select> function data displayed in <p> tag have following , able change text <p> can't data out of database reason
select code
<p id="dbinfo" >data comes here</p> <select id='slct'> <option value='empty'>select number</option> <option value='1'> 1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> </select> <script> document.getelementbyid("slct").onfocus = function() { alert(document.getelementbyid('slct').value); var xmlhttp = new xmlhttprequest(); var text = ""; xmlhttp.onreadystatechange = function() { if (xmlhttp.readystate == 4 && xmlhttp.status == 200) { var dbtext = xmlhttp.responsetext; var obj = json.parse(); var text; var i; for(i =0; < obj.records.length; i++) { text += "<option value='" +obj.records[i].id+ "'>" + obj.records[i].id + "</option>"; } document.getelementbyid('dbinfo').innerhtml = dbtext; } } xmlhttp.open("post", "http://localhost/somemaps/data.php", true); xmlhttp.setrequestheader("content-type", "application/x-www-form-urlencoded"); xmlhttp.send(); document.getelementbyid("slct").onchange = function(){ var id = this.children[this.selectedindex].value; document.getelementbyid("dbinfo").innerhtml = "text has changed: " +id; xmlhttp1 = xmlhttprequest(); xmlhttp.send("id="+id); } } </script> data code
<?php //haal de gegevens uit de database en echo ze naar dit scherm. $servername = "localhost"; $username = "root"; $password = ""; $databasename = "blok-1-am1a"; if(isset($_post['id'])) { $extra = "where ".$id. " = ".$_post['id']; } else { $extra = ""; } try { $connection = new pdo("mysql:host=".$servername.";dbname=".$databasename, $username, $password); $connection->setattribute(pdo::attr_errmode, pdo::errmode_exception); $statement = $connection->prepare("select `id`, `firstname`, `db-name` ".$extra); $statement->execute(); $result = $statement->setfetchmode(pdo::fetch_assoc); $data = ""; foreach($statement->fetchall() $key => $value) { $data .= $value['id']." | ".$value['firstname']; } catch(pdoexception $e) { echo "dit een pdo foutmelding, de volgende fout heeft plaatsgevonden : ".$e->getmessage(); } echo $data; ?> i thinking should add value return? not seem work problem? tips/anwsers welcome (:
edit
after cliffs response , changing code result:

and after selecting happens:

so said data database shows instead of selected id
there 3 problems i've found in code:
there typo on line 9 of
phpcode posted:
think$extra ="where ".$id=$_post['id'];should$extra ="where ".$id."=".$_post['id'];note equal sign=enclosed in double quotes.on line 32 still in
phpcode$data .= $value['id']." | ".$value['firstname']";remove last double quote before semicolon so:
$data .= $value['id']." | ".$value['firstname'];the event looking make
ajaxcall when user selects id within<select>onchange, in jquery.change().
listen on event on line 14 ofjscode too: instead ofonfocususeonchangedocument.getelementbyid("slct").onchange = function()
then, since tagged post jquery, can use ajax methods of jquery faster , easier use.
i suggest jquery.ajax() method:
$("#slct").change(function() { var idvar = $(this).val(); // jquery version of this.children[this.selectedindex].value $.ajax({ url:"http://localhost/somemaps/data.php", type:"post", data: {id: idvar}, async:true, success: function(data) { // code executed if request succeeds eg: $("#dbinfo").html(data); // data variable contains content returned server }, error: function() { // code executed if request fails } }); });
Comments
Post a Comment