- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 PHP 中遇到计数问题...
我正在从 MySQL 动态创建一个下拉列表。当我选择第一个下拉菜单时,如何获取搜索结果计数...例如数据库中的 10 个产品?
这是我的代码:
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 应用程序:
class Application {
public function __construct () {
}
function conn($sql)
{
$host = "localhost";
$username = "root";
$pwd = "";
$dbname = "example";
//echo "commnecing connection to local db<br>"
if (!($conn=mysql_connect($host, $username, $pwd))) {
printf("error connecting to DB by user = $username and pwd=$pwd");
exit;
}
$db3=mysql_select_db($dbname,$conn) or die("Unable to connect to local database");
$result = mysql_query($sql) or die ("Can't connect because ". mysql_error());
return $result;
}//end function
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]."'>".$rows[$field]."</option>\n";
}
$oHTML .= "</select>\n";
}
//send the value back to the calling code
return $oHTML;
}//end function
function countResult(){
$sql2 = "select * from produkt_finder_table where 1 ";
if ( $q == (!empty($_POST['Bauform_d']))&&($_POST['Bauform_d'] != 'all'))
{
$sql2 .= " and Bauform_d like '". addslashes($_POST['Bauform_d'])."%' ";
}
if ((!empty($_POST['Beschreibung_d']))&&($_POST['Beschreibung_d'] != 'all'))
{
$sql2 .= " and Beschreibung_d like '". addslashes($_POST['Beschreibung_d'])."%' ";
}
if ((!empty($_POST['SelectSchutzart_Cust_Bereich_d']))&&($_POST['SelectSchutzart_Cust_Bereich_d'] != 'all'))
{
$sql2 .= " and SelectSchutzart_Cust_Bereich_d like '". addslashes($_POST['SelectSchutzart_Cust_Bereich_d'])."%' ";
}
if ((!empty($_POST['SelectErfassungswinkel_Cust_Bereich_d']))&&($_POST['SelectErfassungswinkel_Cust_Bereich_d'] != 'all'))
{
$sql2 .= " and SelectErfassungswinkel_Cust_Bereich_d like '". addslashes($_POST['SelectErfassungswinkel_Cust_Bereich_d'])."%' ";
}
if ((!empty($_POST['ArtikelProduktgruppe_d']))&&($_POST['ArtikelProduktgruppe_d'] != 'all'))
{
$sql2 .= " and ArtikelProduktgruppe_d like '". addslashes($_POST['ArtikelProduktgruppe_d'])."%' ";
}
$result2 = $this->conn($sql2);
//run query
if (!$result2){ die("No results due to database error.<br>".mysql_error()); }
if (mysql_num_rows($result2)==0)
{
echo "0";
}else{
echo mysql_num_rows($result2);
}
}
function count1(){
if ((!empty($_POST['Bauform_d']))&&($_POST['Bauform_d'] != 'all')) {
}
$sql2 .= " and Bauform_d like '". addslashes($_POST['Bauform_d'])."%' ";
$sql2 = "select * from produkt_finder_table where 1 ";
$result2 = $this->conn($sql2);
if (!$result2){ die("No results due to database error.<br>".mysql_error()); }
if (mysql_num_rows($result2)==0)
{
echo "0";
}else{
echo mysql_num_rows($result2);
}
//run query
}
function countResultAll(){
$sql = "select * from produkt_finder_table where 1 ";
if ((!empty($_POST['searchfield']))&&($_POST['searchfield'] != 'all'))
{
$sql .= " and ArtikelName like '". addslashes($_POST['searchfield'])."%' ";
}
$result = $this->conn($sql);
//run query
if (!$result){ die("No results due to database error.<br>".mysql_error()); }
if (mysql_num_rows($result)==0)
{
echo "0";
}else{
echo mysql_num_rows($result);
}
}
function search()
{
//base sql
$sql = "select * from produkt_finder_table where 1 ";
//get the values from the form
if ((!empty($_POST['Bauform_d']))&&($_POST['Bauform_d'] != 'all'))
{
$sql .= " and Bauform_d like '". addslashes($_POST['Bauform_d'])."%' ";
}
if ((!empty($_POST['Beschreibung_d']))&&($_POST['Beschreibung_d'] != 'all'))
{
$sql .= " and Beschreibung_d like '". addslashes($_POST['Beschreibung_d'])."%' ";
}
if ((!empty($_POST['SelectSchutzart_Cust_Bereich_d']))&&($_POST['SelectSchutzart_Cust_Bereich_d'] != 'all'))
{
$sql .= " and SelectSchutzart_Cust_Bereich_d like '". addslashes($_POST['SelectSchutzart_Cust_Bereich_d'])."%' ";
}
if ((!empty($_POST['SelectErfassungswinkel_Cust_Bereich_d']))&&($_POST['SelectErfassungswinkel_Cust_Bereich_d'] != 'all'))
{
$sql .= " and SelectErfassungswinkel_Cust_Bereich_d like '". addslashes($_POST['SelectErfassungswinkel_Cust_Bereich_d'])."%' ";
}
if ((!empty($_POST['ArtikelProduktgruppe_d']))&&($_POST['ArtikelProduktgruppe_d'] != 'all'))
{
$sql .= " and ArtikelProduktgruppe_d like '". addslashes($_POST['ArtikelProduktgruppe_d'])."%' ";
}
//run query
$result = $this->conn($sql);
if (!$result){ die("No results due to database error.<br>".mysql_error()); }
if (mysql_num_rows($result)==0)
{
echo "No Results found!";
}else{
echo "<table border='1' class='corner'><th width='332'><a href='product.php'>Back</a></th>";
echo "<th>Product Result</th>";
echo "<td width='40' align='center' style=' font-size:16px'><div id='countR'>";
$this->countResult();
echo "</div></td>";
echo "</table>";
// echo '<div style="float:right; font-size:16px">'.$this->countResultAll().'</div>';
// echo "<div style='float:left; font-size:16px'>Produkt Result</div>";
echo "<table border='1' class='corner'>";
$i = 1;
if((mysql_num_rows($result) % 2) == 0){
$complete = false;
}else{
$complete = true;
}
while ($rows= mysql_fetch_array($result))
{
echo "<td>";
echo "<ul><li class='addResult'><span class='red'>".$rows['Bauform_d']."<br /><span class='black'>".$rows['ArtikelName']."</span></span><img src='{imag}' alt='' /> <a href='#'>More Info</a> </li></ul>";
echo "</td>";
if(($i % 2) == 0){
echo "</tr><tr>";
}
$i++;
}
if($complete == true){
echo "<td> </td>";
}
echo "</tr></table>";
echo "<table border='1' class='corner'><th width='332'><a href='product.php'>Back</a> <div></div></th>";
echo "<th>Product Result</th>";
echo "<td width='40' align='center' style=' font-size:16px'>";
$this->countResult();
echo "</td>";
echo "</table>";
}
}
function show_form()
{
$Bauform = $this->dropdown('Bauform_d','produkt_finder_table');
$Beschreibung = $this->dropdown('ArtikelGruppe_d','produkt_finder_table');
$SelectSchutzart = $this->dropdown('SelectSchutzart_Cust_Bereich_d','produkt_finder_table');
$SelectErfassungswinkel = $this->dropdown('SelectErfassungswinkel_Cust_Bereich_d','produkt_finder_table');
$ArtikelProduktgruppe = $this->dropdown('ArtikelProduktgruppe_d','produkt_finder_table');
echo "<form name='search' action='productResult.php?action=search' method='POST'>
<table width='50%' align='center' valign='center' class='corner'>
<tr>
<td colspan='2' align='center'> Search Form <div id='countR' style='float:right; font-size:16px'>Count</div></td>
</tr>
<tr>
<td align='right'>Montageart:</td><td>$Bauform</td>
</tr>
<tr>
<td align='right'>ProduktGruppe:</td><td>$Beschreibung</td>
</tr>
<tr>
<td align='right'>Speisung:</td><td>$SelectSchutzart</td>
</tr>
<tr>
<td align='right'>Reichweite:</td><td> $SelectErfassungswinkel </td>
</tr>
<tr>
<td align='right'>Erfwinkel:</td><td>$ArtikelProduktgruppe </td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' name='submit' value='Go!'></td>
</tr>
</table>
</form>";
}//end function
function searchAll()
{
//base sql
$sql = "select * from produkt_finder_table where 1 ";
//get the values from the form
//NOTE: You should do way more valdation on the values before you attempt to process anything
if ((!empty($_POST['searchfield']))&&($_POST['searchfield'] != 'all'))
{
$sql .= " and ArtikelName like '". addslashes($_POST['searchfield'])."%' ";
}
//run query
$result = $this->conn($sql);
if (!$result){ die("No results due to database error.<br>".mysql_error()); }
if (mysql_num_rows($result)==0)
{
echo "No Results found!";
}else{
echo "<table border='1' class='corner'><th width='332'><a href='product.php'>Back</a></th>";
echo "<th>Product Result</th>";
echo "<td width='40' align='center' style=' font-size:16px'><div id='countR'>";
$this->countResultAll();
echo "</div></td>";
echo "</table>";
// echo '<div style="float:right; font-size:16px">'.$this->countResultAll().'</div>';
// echo "<div style='float:left; font-size:16px'>Produkt Result</div>";
echo "<table border='1' class='corner'>";
$i = 1;
if((mysql_num_rows($result) % 2) == 0){
$complete = false;
}else{
$complete = true;
}
while ($rows= mysql_fetch_array($result))
{
echo "<td>";
echo "<ul><li class='addResult'><span class='red'>".$rows['Bauform_d']."<br /><span class='black'>".$rows['ArtikelName']."</span></span><img src='{imag}' alt='' /> <a href='#'>More Info</a> </li></ul>";
echo "</td>";
if(($i % 2) == 0){
echo "</tr><tr>";
}
$i++;
}
if($complete == true){
echo "<td> </td>";
}
echo "</tr></table>";
echo "<table border='1' class='corner'><th width='332'><a href='product.php'>Back</a> <div></div></th>";
echo "<th>Product Result</th>";
echo "<td width='40' align='center' style=' font-size:16px'>";
$this->countResultAll();
echo "</td>";
echo "</table>";
}
}
}
$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 'count':
$proFin->countResult();
break;
case 'count1':
print 'hallo';
break;
case 'count2':
if (!empty($_POST))
{
var_dump($_POST);
}
break;
case 'count3':
echo $rows[$field];
break;
}
最佳答案
我已经在 apache 和 firefox 上对此进行了测试,并且“empty”被替换为“23”。
测试.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test ajax</title>
</head>
<script language="javascript">
var xmlHttp
function showCount(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="testajax.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;
}
</script>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" alink="#FF0000" onload="showCount( 'heelo' )" >
<span id="countR">empty</span>
</body>
</html>
testajax.php
<?
if( $_REQUEST[ 'action' ] == 'count2' )
{
header( 'Content-type: text/xml' );
echo <<<XMLTOP
<?xml version="1.0" encoding="UTF-8"?>
XMLTOP;
echo( '<countr>23</countr>' );
}
?>
//用于mysql中的mysql行计数使用您可以使用它来获取计数并将其作为第一行。
$query = "SELECT SQL_CALC_FOUND_ROWS ...";
$result = mysql_query( $query ) or LogFatalError( "Database error: " . mysql_error() );
$count = mysql_result( mysql_query( 'SELECT FOUND_ROWS()' ), 0, 0 );
关于php - 如何获取动态下拉列表的搜索结果计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/547577/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!