2016-04-11 11 views
0

a.html

function load(str) 
{ 
    xhttp.open("GET","a.php?q="+str,true); 
    xhttp.send(); 
    }   
}   
<select name = "select" onchange ="load(this.value)">     
    <option selected = "selected">Select a movie</option>     
    <option value= "asc">Name in ascending order</option> 
    <option value = "genre">Genre</option>       
</select> 

a.php

$asc = $_POST['asc']; 
$genre = $_POST['genre']; 
if (!empty($_GET[$asc])) { 
    $sql = "SELECT * FROM movies order by Name ASC"; 
} else if (!empty($_GET[$genre])) { 
    $sql = "SELECT * FROM movies order by Genre ASC"; 
} 
$db = mysql_connect("localhost","root","123"); 
$db_select = mysql_select_db('m',$db); 
if (($result = mysql_query($sql, $db))) { 
    echo $result; 
} 

ich den Wert von Drop-Down-Taste zur Auswahl erhalten möchten. Zum Beispiel asc, und übergeben Sie den Wert an a.php ($asc = $_POST['asc']). Wie könnte ich das tun?

+0

legen Sie es in ein Formular, senden Sie das Formular .. haben Sie das versucht? und btw, verwenden Sie nicht den mysql-Treiber, es ist schlecht, gefährlich und veraltet. – DevDonkey

+1

@DevDonkey vergiss nicht zu erwähnen, dass das in PHP7 entfernt wurde – SuperDJ

+0

ja, was @SuperDJ sagte :) – DevDonkey

Antwort

0
<html> 
<head></head> 
<body> 
    <select class="movie" name="select">     
     <option selected = "selected">Select a movie</option>     
     <option value= "asc">Name in ascending order</option> 
     <option value = "genre">Genre</option>       
    </select> 
     <div class="showMovie"></div> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <script> 
     $('.movie').change(function(){ 
      var movieType= $('.movie').val(); 
      $.ajax({url:"a.php?movieType="+movieType,cache:false,success:function(result){ 
       $(".showMovie").html(result); 
      }}); 
     }); 
    </script> 
</body> 
</html> 

a.php

<?php 

$movieType = $_GET['movieType']; 

if ($movieType == "asc") { 
    $sql = "SELECT * FROM movies order by Name ASC"; 
} else if ($movieType == "genre") { 
    $sql = "SELECT * FROM movies order by Genre ASC"; 
} 
$db = mysql_connect("localhost","root","123"); 
$db_select = mysql_select_db('m',$db); 
if (($result = mysql_query($sql, $db))) { 
    while($movieName = mysql_fetch_array($result)) { 
     echo $movieName['Name']."<br>"; 
    } 
} 
?> 
+0

es zeigt kein Ergebnis :( – ikon

+0

Ich bearbeitet vor ein paar Minuten. Überprüfen Sie es noch einmal @ikon –

+0

Ich habe es genau gefällt, aber immer noch nichts anzeigen – ikon

0

mit Ihrer JS-Funktion senden Sie es über eine "get" -Methode. so haben Sie Ihren Wert in $_GET['q'] ...

Wenn Sie eine POST-Anforderung zu tun, ein Formular verwenden, oder eine XmlHttp Funktion:

function load(obj) 
{ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlxttp.onreadystatechange = function() 
    { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
     { 
      //called when xmlhttp event occurs, here when we receive the response 
      console.log(xmlhttp.responseText); //Print the response into the console 
     } 
    } 

    xmlhttp.open("POST", "a.php"); 
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); //we send it as form 
    xmlhttp.send(obj.value + "=" + encodeURICompopent(obj.innerHTML)); 
} 

Und nennen Last (this) statt Last (this.value)

In pHP wird überprüfen Wert gesendet wird, nur isset verwenden:

if (isset($_POST['asc'])) //do something; 

Aber ich mag nicht auf diese Weise Werte zu senden, ist es veraltet: Anfrage parame ters Namen sollte statisch sein ....

0

a.html

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#select_name').on('change', function() { 
     var str = $(this).val(); 

     $.ajax({ 
       type: "POST", 
       url: "a.php", 
       data: { q:str}, 
       success: function(theResponse) { 

        // Output from ajaxpage.php 
        alert(theResponse); // comment this 

        } 
      }); 
    }); 
});     
</script> 

<select name = "select_name" id = "select_name">     
    <option selected = "selected">Select a movie</option>     
    <option value= "asc">Name in ascending order</option> 
    <option value = "genre">Genre</option>       
</select> 

a.php

<?php 
$db = mysql_connect("localhost","root","123"); 
$db_select = mysql_select_db('m',$db); 

$q = isset($_POST['q']) ? $_POST['q'] : ''; 

if ($q == 'asc') 
{ 
    $sql = "SELECT * FROM movies order by Name ASC"; 
} 
else if ($q == 'genre') 
{ 
    $sql = "SELECT * FROM movies order by Genre ASC"; 
} 
else 
{ 
    echo 'Nothing';exit(); 
} 

$qry = mysql_query($sql); 
if (mysql_num_rows($qry) > 0) 
{ 
$result = mysql_fetch_object($sql) ; 
echo $result; 
} 
?>