tags:

views:

576

answers:

2

As you see I have created drop down and give it name the field name, and I have also the count function.

What I want to do is, if some select drop down menu..show the how many result found in number like 10, 20,.. if the second dropdown selected it will check the two drop down selected and pass the result count..like that continuous..if you want to see example what exactly I want is go here and choose car the count will update..

http://en.comparis.ch/Carfinder/marktplatz/Search.aspx

I have the ajax and working well but I can't get the exact PHP code to count in live time.

AJAX Code..

var xmlHttp

function showCount(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="phpApplication.php";
url=url+"?action=count2";
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("POST",url,true);
xmlHttp.send(null);
}

function stateChanged() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById("countR").innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

PHP Code

function dropdown($field, $table)
{ 
  //initialize variables
  $oHTML  = '';
  $result = '';

  //check to see if the field is passed correctly
  if (($field == "")||($table == ""))
  {
    die("No column or table specified to create drop down from!");
  }

  $sql = "select distinct($field) from $table";

  //call the db function and run the query
  $result = $this->conn($sql);

  //if no results are found to create a drop down return a textbox
  if ((!$result) ||(mysql_num_rows($result)==0))
  {
    $oHTML .= "<input type='text' name='$field' value='' size='15'>";
  }elseif (($result)&&(mysql_num_rows($result)>0)){


    //build the select box out of the results
    $oHTML .= "<select name='$field' onchange='showCount(this.value)'>\n<option value='all'>All</option>\n";
    while ($rows = mysql_fetch_array($result))
    {
      $oHTML .= "<option value='".$rows[$field]."' name='".$rows[$field]."'>".$rows[$field]."</option>\n";

    }
    $oHTML .= "</select>\n";

  }
  //send the value back to the calling code
  return $oHTML;
}//end function

function count1(){

      $sql2 = "SELECT SQL_CALC_FOUND_ROWS * from produkt_finder_table where Bauform_d ='".($_POST['Bauform_d'])."' ";
      $query = $this->conn($sql2);
      $result = mysql_query( $query );
      $count  = mysql_result( mysql_query( 'SELECT FOUND_ROWS()' ), 0, 0 );
      echo $count;
      //$sql2 = "SELECT COUNT(Bauform_d) from produkt_finder_table where Bauform_d = 'mobil' "; 

     //echo var_dump($result1);
     while($row = mysql_fetch_array($query))
     {
    // echo  $row['COUNT(Bauform_d)'];
     }
      //echo mysql_num_rows($query);
    //  if (isset($_POST['Bauform_d']))
//{
    /* if (mysql_num_rows($result)==0) {
      echo '0';
      } else {
     echo mysql_num_rows($result);
     $row = mysql_fetch_array($result);

     echo $result;
     echo $row['COUNT(Bauform_d)'];
    //  }
}*/
}

$action = $_GET['action'];

$proFin = new Application();

switch($action) {

     case 'show':
            $proFin->show_form();
        break;

        case 'search':
            $proFin->search();
        break; 

        case 'searchAll':
            $proFin->searchAll();
        break; 


     case 'count2':

            $proFin->count1();

        break; 

        }
+1  A: 

What parts have you debugged?

Change the count1() function to just echo back the time or something using time().

Then if it returns the correct value you know your JS is working and your PHP script is calling the correct function.

I assume that the PHP code doesnt work as the SQL query is looking for $_POST['Bauform_d'] which isnt set when you call the xmlHTTP Request. Run a simple print_r($_POST); to make sure you are passing all the data you expect in the query. If it is not then change your JS code to pass the value - when you are sure your php script is being passed all the correct variables then begin to add back in your SQL query etc.

Jacob Wyke
A: 

debug debug

Jacob's answer is the key.

Codex73