php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.10.2008, 17:58  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Also ich würde es dir auch empfehlen via Cookie zu machen. Das ganze würde dann in JS so aussehen:

Code:
document.cookie = 'name=wert;';
Dabei musste aber dann beachten, dass das Cookie via PHP erst beim nächsten Seitenaufruf verfügbar ist.


EDIT: Zum Thema Suchmaschine, wie wäre es einfach die Navigation via CSS zu verstecken? Das ist Google & Co. dann nämlich egal.

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.10.2008, 18:02  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

@GSJLink nicht verstecken ist gemeint, sondern das richtige Menü für die aufgerufene Unterseite anzeigen lassen.
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 28.10.2008, 18:27  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Oder man liest die beim nächsten echten Request aus und setzt wiederum Sessiondaten...

Das hat mich auf eine Idee gebracht...in meiner Applikation gibt es nur verschiedene Formulare, die über Submit Buttons abgeschickt werden können. Links gibt es keine. Deshalb denke ich, dass mein Problem mit folgendem Testscript gelöst ist:
PHP-Code:
<html>
<head>

<script type="text/javascript">

var doAddHidden = false;
var collapse = false;

function setCollapsed() {
    doAddHidden = true;
    collapse = true;
}

function setExpanded() {
    doAddHidden = true;
    collapse = false;
}

function addHidden() {
    if (doAddHidden == true) {
        var inputHidden = document.createElement('input');
        inputHidden.setAttribute('type','hidden');
        inputHidden.setAttribute('name','collapsed');
        inputHidden.setAttribute('value', collapse);
        document.getElementById('testform').appendChild(inputHidden);
    }
}
</script>

</head>
<body>
<?php
echo "<pre>POST:";
var_dump($_POST); 
echo 
"</pre>";
?>
<input type="button" value="einklappen" onclick="setCollapsed()">
<input type="button" value="ausklappen" onclick="setExpanded()">
<form id="testform" method="post" action="test.php" onsubmit="addHidden();">
<select name="testselect">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" value="Test">
</form>
</body>
</html>
Ich denke das ist selbsterklärend...ich hänge einfach an das Formular beim Abschicken bei Bedarf ein hidden Feld mit dem entsprechenden Zustand an...

Bezüglich der Suchmaschinenthematik und prinzipieller Bedenken beim Einsatz von javascript: Bei meinem kleinen Projekt handelt es sich nicht um eine typische Webseite, sondern eher um eine Applikation für einen kleinen definierten Benutzerkreis...also isses mir ziemlich rille, ob Google mich findet
__________________
mfg louis
louis ist offline  
Alt 28.10.2008, 18:36  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

bestes Beispiel für meine Variante ist das php manual.
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 28.10.2008, 19:10  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das mit Ajax funktioniert auch ziemlich gut. Habe das gerade mal rough umgesetzt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 30.10.2008, 09:25  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

hast du mal einen Link dazu das man sich das anschauen kann?
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 30.10.2008, 09:29  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nö, habs nur lokal. Wie gesagt, Quick und (really!) dirty:

PHP-Code:
<?

session_save_path 
('.');
session_start ();

$closed =  $_SESSION['closed'];


if (isset (
$_GET['oc']))
  {
  if (
in_array ($_GET['oc'] , $closed)) $closed array_diff ($closed , array ($_GET['oc']));
  else 
$closed[] = $_GET['oc'];
  }


if (isset (
$_GET['ajaxRequest'])) return;


$sMenu ='
<ul>
<li><span>Item1</span>
    <ul>
    <li>Item1.1</li>
    <li>Item1.2</li>
    </ul></li>

<li><span>Item1</span>
    <ul>
    <li>Item2.1</li>
    <li><span>Item2.2</span>
        <ul>
        <li>Item2.2.1</li>
        <li>Item2.2.1</li>
        </ul>
    </li>
    <li>Item2.3</li>
    </ul></li>

<li>Item3</li>

<li><span>Item4</span>
    <ul><li>Item4.1</li>
        <li>Item4.2</li></ul>
</li>
</ul>'
;


$_SESSION['closed'] = $closed;

$oDOM = new DOMDocument();
$oDOM->loadHTML($sMenu);


$aDOMElements $oDOM->getElementsByTagName('li');

if (isset (
$_GET['reset']))
  {
  
$closed range ($aDOMElements->length);
  }

$i=0;
foreach (
$aDOMElements as $oElement)
  {
  
$i++;
  
$sName $oElement->setAttribute('name' 'item['.$i.']');
  
$oSub $oElement->getElementsByTagName('ul');

  if (
$oSub->length 0)
    {
    
$oSub->item(0)->setAttribute('name' 'list['.$i.']');
    if (
in_array ($i $closed))
      {
      
$oSub->item(0)->setAttribute('class' 'hidden_element');
      }
    }

  
$oSub $oElement->getElementsByTagName('span');

  if (
$oSub->length 0)
    {
    
$oLink $oDOM->createElement ('a' '+');
    
$oLink->setAttribute ('href' '?oc=' $i);
    
$oSub->item(0)->appendChild ($oLink);
    }
  }


?>
<html><head>
<style>
.hidden_element {display:none;}
</style>

<script type="text/javascript">

function tgg (element_key)
  {
  AjaxSendGETRequest ('oc=' + element_key , '01.php');
  element = document.getElementsByName ("list["+element_key+"]")[0];

  var regExpClass = new RegExp ('\\s*\\bhidden_element\\b');
  if (0 == regExpClass.test (element.className)) 
    {
    element.className += ' hidden_element';
    return;
    }
  element.className = element.className.replace (regExpClass , '');
  }

</script>

</head><body>
<a href="?">plain nRequest</a> | <a href="?reset">Reset</a> | <a href="javascript:tgg (4);">toggle</a> 
<? echo  $oDOM->saveHTML(); ?>

<script type="text/javascript">
  elements = document.getElementsByTagName ('a');
  for (i=3;i<elements.length;i++)
    {
    elements[i].onclick = 
    function()
      {
      var link = this.href.split('=');
      tgg(link[1]);
      return false;
      }
    }
</script>
</body></html>
Den Ajaxkrempel habe ich mal weggelassen. Halt ein normaler Ajax-Get-Request, der über AjaxSendGETRequest ('parameter=wert' , 'script'); initiiert wird.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
win unter qemu über privoxy drieling Off-Topic Diskussionen 1 11.07.2008 11:16
Externe Variable über eine Funktion ausgeben errox PHP Tipps 2008 3 14.04.2008 11:26
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
Remote öffnen von txt über php? PHP-Fortgeschrittene 6 08.11.2005 22:58
Grafik über mehrere Zellen einer Tabelle neodrei HTML, Usability und Barrierefreiheit 9 18.08.2005 19:26
[Erledigt] Verzeichnisse meiner Homepage über WebDAV sichern PHP-Fortgeschrittene 1 08.08.2005 12:11
POSTDATA direkt über PHP schicken PHP Tipps 2005-2 2 26.07.2005 20:25
im eigenen Bereich über das Internet drucken Soese PHP Tipps 2004-2 1 23.12.2004 22:40
Webseiten aufruf über Webserver? PHP Tipps 2004-2 8 30.11.2004 18:00
suche über zwei oder mehr spalten Datenbanken 1 28.11.2004 09:51
Javascript über Javascript erstellen HTML, Usability und Barrierefreiheit 2 19.11.2004 18:02
DB-backup über Script Datenbanken 6 22.10.2004 11:23
Zugang über dyndns Datenbanken 0 12.10.2004 15:31
Umleitung über Meta-Angaben im Header abhängig vom Host PHP Tipps 2004 7 14.06.2004 12:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
css collapse zustand beibehalten

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum