php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.07.2008, 09:07  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Wenn Checkbox checked, dann gibt es ein weiteres Pflichtfeld.

Hallo!

Habe mal wieder eine Frage zu einem Formularproblem.

In einem Formular gibt es eine Checkbox "Bitte um Rückruf". Nun möchte ich, dass wenn die Box angeklickt ist, das Feld Telefon zu einem Pflichtfeld wird. Meine Pflichtfelder sind in einem array. Nun möchte ich wissen, wie man das programmieren kann. Sozusagen: Wenn Checkbox checked, dann füge telefon mit zu dem Pflichtfeld array. Geht das irgendwie?

LG Denise

Hier mal noch mein Code:
PHP-Code:
<?php

$script 
'http://' $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];

$empfaenger '....';
$ip getenv('REMOTE_ADDR');
$betreff '...';
$arr_daten = array(
  
'Nachricht' => $_POST['message'],
  
'Firma' => $_POST['firma'],
  
'Ansprechpartner' => $_POST['ansprechpartner'],
  
'Straße' => $_POST['strasse'],
  
'PLZ Ort' => $_POST['plzort'],
  
'Telefon' => $_POST['telefon'],
  
'Fax' => $_POST['fax'],
  
'E-Mail' => $_POST['email'],
  
'Imagebroschüre' => $_POST['broschure'],
  
'Rückruf' => $_POST['rueckruf']
);
$errorFields = array(
  
'message',
  
'ansprechpartner',
  
'strasse',
  
'plzort',
  
'email'
);

for(
$x=0;$x<count($errorFields);$x++)
{
  
$errorClass[$errorFields[$x]] = 'inputField';
}

function 
checkEmail($email)
{
  
$nonascii      "\x80-\xff";
  
$nqtext        "[^\\\\$nonascii\015\012\"]";
  
$qchar         "\\\\[^$nonascii]";
  
$normuser      '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
  
$quotedstring  "\"(?:$nqtext|$qchar)+\"";
  
$user_part     "(?:$normuser|$quotedstring)";
  
$dom_mainpart  '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
  
$dom_subpart   '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
  
$dom_tldpart   '[a-zA-Z]{2,5}';
  
$domain_part   "$dom_subpart$dom_mainpart$dom_tldpart";
  
$pattern       "$user_part\@$domain_part";

  if(!
preg_match("/^$pattern$/"$email))
  {
    return 
FALSE;
  }
  else
  {
    return 
TRUE;
  }
}

if(
$_GET['check'] == 'TRUE')
{
  
$errorMessage '<table width="100%" class="yes"><tr><td><b>
                  Vielen Dank, Ihre Daten wurden weitergeleitet.<br />Wir werden uns in Kürze bei Ihnen melden!</td></tr></table><br>'
;
}

if(isset(
$_POST['senden']))
{
  if(
$_POST['email_address'] !== '')
  {
    exit(
'<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
  }
  else
  {
    
$error FALSE;
    foreach(
$errorFields as $key => $value)
    {
      if(empty(
$_POST[$errorFields[$key]]))
      {
        
$error TRUE;
        
$errorClass[$value] = 'errorField';
      }
    }
  }
  if(
$error == TRUE)
  {
    
$errorMessage '<table width="100%" class="errorTable"><tr><td>
                     </td><td><b>Achtung!</b><br>
                     Damit wir Ihre Anfrage bearbeiten können, füllen Sie bitte alle farblich markierten Pflichtfelder aus.</td></tr></table><br>'
;
  }
  else
  {
    
header("Location: $script?check=TRUE");
    
$header .= 'From:' .$email;

    
$nachricht .= "Folgende Nachricht wurde von $ansprechpartner gesendet:\n\n";

    foreach(
$arr_daten as $key_daten => $value_daten)
    {
      if(!empty(
$value_daten))
      {
        
$nachricht .= "$key_daten: $value_daten\n";
      }
    }

    
$nachricht .= "\nIP: ".$ip."\n";

    
mail($empfaenger$betreff$nachricht$header);
  }
}
?>
pixelprinzessin ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.07.2008, 09:12  
Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 86
SJahr befindet sich auf einem aufstrebenden Ast
SJahr eine Nachricht über ICQ schicken SJahr eine Nachricht über MSN schicken
Standard

Ich glaube das was du suchsts, hat nix mit PHP sondern eher mit JavaScript zu tun...
SJahr ist offline  
Alt 28.07.2008, 09:18  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

mhmm wieso? ich denke doch das das mit php zu lösen ist. im Grunde genommen ist ja es sowas wie

PHP-Code:
if ('rueckruf' == checked) {
schreibe telefon in das array, damit es ein pflichtfeld ist

oder nicht?
pixelprinzessin ist offline  
Alt 28.07.2008, 09:23  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja einerseits sollte das Telefonnummer-Feld farblich markiert werden und andererseits müsste (wenn ich den Quelltext richtig verstehe) das $errorFields-Array erweitert werden:

PHP-Code:
if($_POST['checkbox'] == "on")
    
array_push($errorFields,'Telefon'); 
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 28.07.2008, 09:28  
Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 86
SJahr befindet sich auf einem aufstrebenden Ast
SJahr eine Nachricht über ICQ schicken SJahr eine Nachricht über MSN schicken
Standard

Dann hab ich deine Frage falsch verstanden. Ich dachte du willst ein weiteres Feld in dem Sinne zu einem Pflichtfeld machen, das es nicht leer sein darf. Das könntest du nämlich per JS lösen.
SJahr ist offline  
Alt 28.07.2008, 09:34  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

Mhmm... danke, aber das klappt irgendwie nicht so richtig...

Das Feld zeigt es nicht farbig an, und wenn ich auf senden gehe und dann meine Fehlermeldungen kommen, ist auch das Häckchen wieder weg in der Checkbox...

Habe das if hierhin geschrieben:
PHP-Code:
<?php

$script 
'http://' $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];

$empfaenger '.....';
$ip getenv('REMOTE_ADDR');
$betreff '.....';
$arr_daten = array(
  
'Nachricht' => $_POST['message'],
  
'Firma' => $_POST['firma'],
  
'Ansprechpartner' => $_POST['ansprechpartner'],
  
'Straße' => $_POST['strasse'],
  
'PLZ Ort' => $_POST['plzort'],
  
'Telefon' => $_POST['telefon'],
  
'Fax' => $_POST['fax'],
  
'E-Mail' => $_POST['email'],
  
'Imagebroschüre' => $_POST['broschure'],
  
'Rückruf' => $_POST['rueckruf']
);

if(
$_POST['rueckruf'] == "on"){ 
   
array_push($errorFields,'telefon');
   } 

$errorFields = array(
  
'message',
  
'ansprechpartner',
  
'strasse',
  
'plzort',
  
'email'
);

for(
$x=0;$x<count($errorFields);$x++)
{
  
$errorClass[$errorFields[$x]] = 'inputField';
}
pixelprinzessin ist offline  
Alt 28.07.2008, 09:35  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das muss auch umgekehrt:
PHP-Code:
$errorFields = array(
  
'message',
  
'ansprechpartner',
  
'strasse',
  
'plzort',
  
'email'
);
if(
$_POST['rueckruf'] == "on"){ 
   
array_push($errorFields,'telefon');
   } 
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 28.07.2008, 09:39  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

Mhmm klappt trotzdem nicht.

Die Checkbox ist nach dem Klick auf senden nicht mehr gechecked...

Habe meine Felder so definiert:
Code:
<input name="fax" type="text" class="inputField" id="fax" value="<?PHP echo $_POST['fax']; ?>" size="30" />
damit sie nach dem erneuten Seitenaufbau das behalten, was man reingeschrieben hat.

Bei der Checkbox hab ich allerdings als value="ja", weil die Auswertung sonst nicht in der E-Mail geschickt wird. Kann es vll daran liegen, dass die Checkbox automatisch wieder entchecked wird?

LG Denise
pixelprinzessin ist offline  
Alt 28.07.2008, 09:47  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

eine checkbox ist so automatisch "gecheckt":
<input type="checkbox" .... checked="checked" />
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 28.07.2008, 09:51  
Erfahrener Benutzer
 
Benutzerbild von pixelprinzessin
 
Registriert seit: 23.04.2008
Beiträge: 270
PHP-Kenntnisse:
Anfänger
pixelprinzessin befindet sich auf einem aufstrebenden Ast
Standard

mhmm nee, das soll auch nicht sein... sie soll ja nicht schon automatisch gechecked sein... bloß wenn ich die checkbox anklicke, auf senden gehe dann kommt meine Fehlermeldung, dass die farbig markierten Felder ausgefüllt werden müssen, Telefon ist allerdings nicht dabei, und die Checkbox ist auch nicht mehr checked...
pixelprinzessin 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
Checkbox: Status (Checked) erkennen SvenLittkowski PHP Tipps 2008 4 10.11.2007 18:58
[JS] Checkbox setzt andere checkboxen auf checked phpfortgeschrittener HTML, Usability und Barrierefreiheit 2 13.03.2006 17:30
Wie kann ich eine checked Checkbox in die DB eintragen??? LA-Finest PHP Tipps 2005-2 3 06.06.2005 13:36
Überprüfen ob die Checkbox checked ist? Paulo HTML, Usability und Barrierefreiheit 1 22.11.2004 13:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
checkbox on, php if checkbox checked, php checkbox checked, if checkbox checked php, php if checkbox, php if checked, if checked php, php checkbox if, checkbox checked php, checkbox php checked, if checkbox php, php checkbox if checked, checkbox if checked php, if($_get[\'check\'] == \true\), if checkbox true php, checkbox php if, wenn checkbox aktiv dann php, http://www.php.de/php-tipps-2008/46302-erledigt-wenn-checkbox-checked-dann-gibt-es-ein-weiteres-pflichtfeld.html, wenn checkbox dann, if php checkbox

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:46 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