0

First, I am very novice in my knowledge of writing functions and php, so bear with me, and Thank you for your input and help.

I have three dynamically loaded drop downs from a MySQL database. The first two pass one variable and work great. The third drop down needs to pass two values and I am having trouble getting it to work.

php:

<select name="COURSE" onChange="get_Results(this.value)">
<option>Select Course</option> 
 <?php 
 require "config.php";
 $CURR=$_GET['CURR'];
 $COURSE=$_GET['COURSE'];
 $query = "SELECT DISTINCT CURR, COURSE FROM UGASU11 WHERE CURR = '$CURR' order by COURSE";
 $result=mysql_query($query);
 while($row=mysql_fetch_array($result)) { ?>
 <option value=<?php echo $row['CURR'].",".$row['COURSE']?>><?php echo $row['COURSE']?></option>
 <? } ?>
 </select>

which, when a user selects ADPR from the second drop down outputs:

<select name="COURSE" onChange="get_Results(this.value)">
<option>Select Course</option>

<option value=ADPR,3110>3110</option>
<option value=ADPR,3520>3520</option>
<option value=ADPR,5910>5910</option>
<option value=ADPR,5990 H>5990 H</option>
</select>

get_Results Function:

function get_Results(CURR,COURSE) {  
 var strURL="/textbookresults.php?CURR="+CURR+"&COURSE="+COURSE; 
 var req = getXMLHTTP();
 if (req) {

  req.onreadystatechange = function() {
    if (req.readyState == 4) { 
    if (req.status == 200) {                    
    document.getElementById('RESULTS_div').innerHTML=req.responseText;
                  } else {
    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
       }
    }            
     }        
req.open("GET", strURL, true); 
req.send(null);
   }
}

MySQL Query in textbookresults.php:

$query = "SELECT * FROM UGASU11 WHERE CURR = '$CURR' AND COURSE = '$COURSE'";

I'm not sure where the problem is. Any help is MUCH appreciated. I have been pulling my hair out for two days now.

THANKS!

EDIT: here is the complete textbooks.php:

        <?
        // www.plus2net.com //
        require "config.php";

        $TERM=$_GET['TERM'];
        $CURR=$_GET['CURR'];
        $COURSE=$_GET['COURSE'];
        $PRODUCT_NAME=$_GET['PRODUCT_NAME'];
        $AUTHOR=$_GET['AUTHOR'];
        $PUBLISHER=$_GET['PUBLISHER'];
        $INSTRUCTOR=$_GET['INSTRUCTOR'];
        $PRODUCT_THUMBNAIL=$_GET['PRODUCT_THUMBNAIL'];
        $PRODUCT_CODE=$_GET['PRODUCT_CODE'];

           $query = "SELECT * FROM UGASU11 WHERE CURR = '$CURR' AND COURSE = '$COURSE' order by INSTRUCTOR";

           $qry_result = mysql_query($query) or die(mysql_error());

           $display_string = "<table style='color:#fff;'>";

           while($row = mysql_fetch_array($qry_result)){
           $display_string .= "<tr>";
           $display_string .= "<td colspan=3><b>Instructor: $row[INSTRUCTOR] ($row[CURR] $row[COURSE])</b></td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td>&nbsp;</td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td colspan=2 rowspan=4><img src=\"/Merchant5/$row[PRODUCT_THUMBNAIL]\" /></td>";
           $display_string .= "<td><a href=\"/product/$row[PRODUCT_CODE].html\" onclick=\"return GB_showCenter('Product', this.href, 500, 500, callback_fn)\">$row[PRODUCT_NAME]</a></td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td>Author: $row[AUTHOR]</td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td>Publisher: $row[PUBLISHER] <br /> </td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td style='float:right;'><a href=\"/product/$row[PRODUCT_CODE].html\" onclick=\"return GB_showCenter('Product', this.href, 500, 500, callback_fn)\"><img src=\"/Merchant5/graphics/00000001/images/AddtoBasket.png\" /></a></td>";
           $display_string .= "</tr>";

           $display_string .= "<tr>";
           $display_string .= "<td colspan=3><br /><hr /><br /></td>";
           $display_string .= "</tr>";   
            }

            $display_string .= "</table>";
            echo $display_string;
            ?>

and here is the Response I am currently getting:

<table style='color:#fff;'></table> 
5
  • 2
    Please point out what the problem is: Error message? Blank values? Unexpected values? Thanks, and welcome. Commented Jun 3, 2011 at 15:43
  • 1
    One problem is that you're not escaping the $_GET parameters before adding them into your SQL statement. Commented Jun 3, 2011 at 15:43
  • Do you need your users to be able to select more than course? Commented Jun 3, 2011 at 15:45
  • There are no values being returned. Commented Jun 3, 2011 at 15:53
  • AJ - Pardon my ignorance, but I'm not sure what you mean "not escaping". Is that necessary? There are no problems with the first two drop downs which I can only assume are not escaping either. Commented Jun 3, 2011 at 15:54

1 Answer 1

2
<option value=<?php echo $row['CURR'],$row['COURSE']?>><?php echo $row['COURSE']?></option>

change it

<option value="<?php echo $row['CURR'].",".$row['COURSE']?>" ><?php echo $row['COURSE']?></option>

that will make a comma separated value for this option

    function get_Results(passedValue) { 
   var args = passedValue.split(",");
   var CUR = args[0];
   var COURSE = args[1];

     var strURL="/textbookresults.php?CURR="+CURR+"&COURSE="+COURSE; 

....remaining code... hope fully that will solve the issue

Sign up to request clarification or add additional context in comments.

3 Comments

Thank you. I added that into the option value and now the two values are separated by a comma, but I am still not getting any returned results.
your get_results is wrong it is only receive one parameter and you have to use split function to get two values out of a single variable
AWESOME SAUCE! That worked! Thanks! I was searching through exploding and splitting functions and getting another headache, so thank you for providing me with the solution! You Rock Man!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.