Show/hide div - van zoekscherm

Status
Niet open voor verdere reacties.

Ambassad0r

Gebruiker
Lid geworden
12 apr 2011
Berichten
10
Hallo allemaal,

weet niet of ik hier in de juiste groep ben (kan ook CSS zijn).
Mijn 'probleem' is namelijk:
Ik heb een pagina met een zoekfunctie (in PHP). Deze wil ik laten zien in een verborgen div. Dus heb ik een java script gevonden die mijn div hides en shows.
Echter, als ik op submit (=zoek) druk in mijn zoekscherm, verbergt zich de div weer. :(

Wat kan ik doen?
 
Je code posten zodat we niet in het duister tasten... dit probleem kan wel 20 verschillende oorzaken hebben.



(een live voorbeeld is ook prima)
 
Dit is de javascript.


[JS]?>
<script language="javascript" type="text/javascript">
function jchange(o) {
var fold_image = new Array();
fold_image[0] = "/images/openarrow.gif";
fold_image[1] = "/images/closedarrow.gif";

if(document.getElementById(o).style.display=='none') {
document.getElementById(o).style.display='block';
if(document.getElementById('nfolding')) {
document.getElementById('nfolding').src=fold_image[0];
}
} else {
document.getElementById(o).style.display='none';
if(document.getElementById('nfolding')) {
document.getElementById('nfolding').src=fold_image[1];
}
}

}
</script>
[/JS]
 
En nog even de php/html code met het opvouw-element en het <form> wat gesubmit wordt?
 
Onderstaand staat als include in de hoofd HTML


Code:
<?php

include('.php'); 
?>

<html>
<head>
<title>K</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>

<body>
<div id="rmasearch">

<fieldset>
<legend>Search</legend>
<form name="form" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">
  <p>S: <input type="text" name="q" /><br></p>

  <p><input type="submit" name="Submit" value="Search" /></p>

 </form>
 </fieldset>



<?php

  // Get the search variable from URL
if (isset($_POST["Submit"])) 
echo "hello!";
$trimmed = trim($q); //trim whitespace from the stored variable
// rows to return
$limit=10; 

// check for an empty string and display a message.
if ($trimmed == "")
  {
  echo "<p>Search...</p>";
  exit;
  }

// check for a search parameter
if (!isset($trimmed))

  {
  echo "<p>Nothing!</p>";
  exit;
  }


// Build SQL Query  

$query = "SELECT " ;
 $numresults=mysql_query($query);
 $numrows=mysql_num_rows($numresults);

if ($numrows == 0)
  {
  echo "<h4>Resultate</h4>";
  echo "<p>Ihre Suche hat: &quot;" . $trimmed . "&quot; keine Resultate</p>";

 }

// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }

// get results
  $query .= " limit $s,$limit";
  $result = mysql_query($query) or die("Couldn't execute query");
// display what the person searched for
echo "<p>Searched: &quot;" . $trimmed . "&quot;</p>";

// begin to show results set
echo "Resultate:" ;
$count = 1 + $s ;

// now you can display the results returned
while ($row= mysql_fetch_array($result)) {
echo 
"<p>"
."<a href='../r.php?id="
.$row['customer']
."'>"
."K: ".$row["c"]
."</a>"
."<br />"
."I: ".$row["i"]
."<br />"
."A: ".$row["r"]
."<br />"
."S: ".$row["s"]
."<br /></p><hr>";
 $count++ ;
}


$currPage = (($s/$limit) + 1);

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt; 
  Prev 10</a>&nbsp&nbsp;";
  }

// calculate number of pages needing links
  $pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from division

  if ($numrows%$limit) {
  // has remainder so add one page
  $pages++;
  }

// check to see if last page
  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

  // not last page so give NEXT link
  $news=$s+$limit;

  echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
  }

$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Result $b of $a of $numrows</p>";
  
  
?>
</div>
</body>
</html>
 
Hoi Ambassad0r,
Het is nog niet helemaal compleet, want het stylesheet en het hoofdbestand (waar de javascript-functie in wordt getriggerd) hebben we nog niet gezien. ;)

Maar misschien kan ik toch al iets zeggen:
Als het bovenstaande vanaf <html> t/m </html> echt als php-include in de hoofdpagina is gemonteerd, dan staat er eigenlijk:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Hoofdpagina</title>
...
</head>
<body>
    <!-- teksten enz. van de hoofdpagina totaan de php-include: -->
    <div id="first-contentpart">...</div>

    <!-- de output van de include: -->
    <html>
        <head>
            <title>K</title>
            <link rel="stylesheet" type="text/css" href="styles.css" />
        </head>
        <body>
            <div id="rmasearch">
            ... enz. t/m
            </div>
        </body>
    </html><!-- het STOP PAGINA bevel ! -->
    
    <!-- teksten enz. van de hoofdpagina vanaf de php-include: -->
    <div id="second-contentpart">...</div>
</body>
</html>
en dan is het een soort pagina binnen een pagina geworden, en logisch dat de pagina ophoudt na de eerste keer </html>; de html-validator zal dan ook zeker bezwaren hebben tegen de resulterende pagina. :)

De include hoort de kale code te zijn, en niet een complete pagina (zoals bij een <frame> of <iframe>).
D.w.z. de include.php moet alleen bevatten:
HTML:
<div id="rmasearch">
    <fieldset>
    <legend>Search</legend>
    ... enz. t/m ...

    echo "<p>Result $b of $a of $numrows</p>";
    ?>
</div>
Was dit het?

met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Hi CSShunter,

dank voor je antwoord. En het klinkt allemaal erg logisch. Dus heb ik de HTML tags verwijderd. Echter is er geen verandering te zien.
De border en footer zijn nog steeds afwezig en na de submit in de zoek-div worden ze pas weergegeven.
Tevens verdwijnt de zoek-div nog steeds na submit in deze div.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan