ошибка подсчета php - PullRequest
       11

ошибка подсчета php

0 голосов
/ 18 февраля 2009

Как вы видите, я создал выпадающий список и дал ему имя имени поля, а также у меня есть функция count.

Что я хочу сделать, так это если некоторые выпадающее меню выбрать ... показать, сколько результатов найдено в числе, например, 10, 20, ... если выбрано второе раскрывающееся меню, оно проверит два выбранных выпадающих списка и передаст результат считать .. как этот непрерывный .. если вы хотите увидеть пример, что именно я хочу, иди сюда и выберите автомобиль, счет будет обновляться ..

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

У меня есть ajax и он работает хорошо, но я не могу получить точный код PHP для подсчета в реальном времени.

Код AJAX ..

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-код

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; 

        }

Ответы [ 2 ]

2 голосов
/ 24 февраля 2009

Какие части вы отлаживали?

Измените функцию count1 (), чтобы просто отображать время или что-то еще, используя time ().

Тогда, если он возвращает правильное значение, вы знаете, что ваш JS работает и ваш PHP-скрипт вызывает правильную функцию.

Я предполагаю, что код PHP не работает, так как SQL-запрос ищет $ _POST ['Bauform_d'], который не устанавливается при вызове запроса xmlHTTP. Запустите простой print_r ($ _ POST); чтобы убедиться, что вы передаете все данные, которые вы ожидаете в запросе. Если это не так, измените свой JS-код для передачи значения - когда вы уверены, что ваш php-скрипт передает все правильные переменные, тогда начинайте добавлять обратно в ваш SQL-запрос и т. Д.

0 голосов
/ 04 марта 2009

debug debug

Ответ Иакова - ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...