php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.02.2009, 12:19  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 23
Jasper befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Eingabetextfeld verschwindet nach 'Submit'

Hallochen,

mit dem unten stehenden Skript wird eine Tabelle (MySQL) und ein dazugehörendes Texteingabefeld auf einer Seite dargestellt.
Neue Daten werden eingegeben und nach 'Submit' in der Tabelle dargestellt.
Soweit funktioniert es.
Doch nach dem 'Submit' verschwindet das Texteingabefeld.
Wie kann ich erreichen, dass Texteingabefeld und Tabelle immer sichtbar sind?

Code:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
PHP-Code:
<?php if (isset($_POST['name'])):     
$name $_POST['name'];       
$sql "INSERT INTO Info SET
       name='$name'"
;                
if (@
mysql_query($sql)) {     
$res '<p>  New info added  </p>';   } 
else {     exit(
'<p>Error adding new info: ' mysql_error() . '</p>');   } ?>  
<?php else:   ?>
Code:
<table><tr><td>
<input name="name" type="text"/>
</td></tr></table>
PHP-Code:
<?php endif; ?>
Code:
<table border = "1">			
<colgroup>					   	
<col width="187" />    				
</colgroup>
<tr><th>Name</th></tr>
PHP-Code:
 <?php                 
$houses 
= @mysql_query'SELECT * FROM Info'); 
if (!
$houses) { 
echo 
'</table>'
exit(
'<p>Error retrieving from database!<br />''Error: ' mysql_error) . '</p>'); 

while (
$house mysql_fetch_array($houses)) {                       
$name htmlspecialchars($house['name']);                                           echo "<td>$name</td>";                       
echo 
"</tr>\n"; } 
?>
PHP-Code:
</table>
<input type="submit" value="SUBMIT" />
</form>
<? echo "$res"?>
Jasper ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.02.2009, 12:43  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Für mich aus den einzelnen Codeschnippselchen nicht erkennbar.
David ist offline  
Alt 14.02.2009, 12:54  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 23
Jasper befindet sich auf einem aufstrebenden Ast
Standard

Sorry, soll ich den ganzen Code zusammenfassen und dann als
Code:
Code
markieren?
Jasper ist offline  
Alt 14.02.2009, 12:56  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Naja, den gesamten relevanten Code
David ist offline  
Alt 14.02.2009, 13:05  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 23
Jasper befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php if (isset($_POST['name'])):      
$name $_POST['name'];        
$sql "INSERT INTO Info SET 
       name='$name'"
;                 
if (@
mysql_query($sql)) {      
$res '<p>  New info added  </p>';   }  
else {     exit(
'<p>Error adding new info: ' mysql_error() . '</p>');   } ?>   
<?php else:   ?>
.
.
<?php endif; ?>
.
.
 <?php                  
$houses 
= @mysql_query'SELECT * FROM Info');  
if (!
$houses) {  
echo 
'</table>';  
exit(
'<p>Error retrieving from database!<br />''Error: ' mysql_error) . '</p>');  
}  
while (
$house mysql_fetch_array($houses)) {                        
$name htmlspecialchars($house['name']);                                           echo "<td>$name</td>";                        
echo 
"</tr>\n"; }  
?>
.
.
<? echo "$res"?>
Und?
Jasper ist offline  
Alt 14.02.2009, 13:24  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und wo ist da jetzt das Texteingabefeld?
David ist offline  
Alt 14.02.2009, 14:02  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 23
Jasper befindet sich auf einem aufstrebenden Ast
Standard

Oder so?

Code:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >

<?php if (isset($_POST['name'])):       
$name = $_POST['name'];         
$sql = "INSERT INTO Info SET  
       name='$name'";                  
if (@mysql_query($sql)) {       
$res = '<p>  New info added  </p>';   }   
else {     exit('<p>Error adding new info: ' . mysql_error() . '</p>');   } ?>    
<?php else:   ?>

<table><tr><td>
<input name="name" type="text"/>
</td></tr></table>

<?php endif; ?> 

<table border = "1">			
<colgroup>					   	
<col width="187" />    				
</colgroup>
<tr><th>Name</th></tr>

 <?php                   
$houses = @mysql_query( 'SELECT * FROM Info');   
if (!$houses) {   
echo '</table>';   
exit('<p>Error retrieving from database!<br />'. 'Error: ' . mysql_error) . '</p>');   
}   
while ($house = mysql_fetch_array($houses)) {                         
$name = htmlspecialchars($house['name']);                                           echo "<td>$name</td>";                         
echo "</tr>\n"; }   
?> 

</table> 
<input type="submit" value="SUBMIT" /> 
</form> 
<? echo "$res"; ?>
Jasper ist offline  
Alt 14.02.2009, 14:11  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Schon besser. Jetzt entscheide Dich noch zwischen VB- oder C-Stil
Also entweder
PHP-Code:
if (condition) :
  ...
else:
  ...
endif; 
oder
PHP-Code:
if (condition) {
  ...
}
else {
  ...

(ich bevorzuge den C-Stil mit geschweiften Klammern) und rücke den Code konsistent ein. Kein Wunder, wenn Du bei der Kraut&Rüben-Form den Überblick verlierst
David ist offline  
Alt 14.02.2009, 14:40  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 23
Jasper befindet sich auf einem aufstrebenden Ast
Standard

Was meinst Du jetzt? (Sorry, wenn ich den Smiley wiederhole aber einen für 'Angst' z.B. mit Zähneklappern habe ich nicht gefunden).

Code:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >

<?php 
if (isset($_POST['name'])) {       
    $name = $_POST['name'];         
    $sql = "INSERT INTO Info SET name='$name'";                  
    if (@mysql_query($sql)) {       
        $res = '<p>  New info added  </p>';   
    } else {
       exit('<p>Error adding new info: ' . mysql_error() . '</p>');   } 
?> 
   
<?php 
else:   
?>

<table><tr><td>
    <input name="name" type="text"/>
</td></tr></table>

<?php endif; ?> 

<table border = "1">			
    <colgroup>					   	
    <col width="187" />    				
    </colgroup>
    <tr><th>Name</th></tr>

    <?php                   
    $houses = @mysql_query( 'SELECT * FROM Info');   
    if (!$houses) {   
        echo '</table>';   
        exit('<p>Error retrieving from database!<br />'. 
            'Error: ' . mysql_error) . '</p>');   
    }   
    while ($house = mysql_fetch_array($houses)) {                         
        $name = htmlspecialchars($house 'name']);
        echo "<td>$name</td>";                         
        echo "</tr>\n"; }   
    ?> 

</table> 
<input type="submit" value="SUBMIT" /> 
</form> 

<? echo "$res"; ?>
Jasper ist offline  
Alt 14.02.2009, 15:01  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Hm... fast, aber noch nicht ganz.
Das äußerste if ist jetzt eine Mischung aus C- und VB-Stil; da wird php meckern.
Ist jetzt aber egal, denn das verschwindet in der Form eh gleich komplett
Den HTML-Code kannst Du auch einrücken, ebenso SQL-Abfragen.
  • Sowohl für die Anzeige als auch die Ausgabe der Liste brauchst Du die Verbindung zum MySQL-Server, also packen wir der Einfachheit halber den Code für die Verbindung ganz an den Anfang.
  • Wenn es den POST-Parameter name gibt, willst Du den Wert in die Tabelle eintragen. Prima, das kannst Du gleich am Anfang des Skripts tun; noch bevor irgendetwas ausgegeben wird.
  • sql injections. Du willst nicht, dass der Wert in $_POST die SQL-Abfrage ändern kann; nur die "Nutzlast". siehe mysql_real_escape_string
  • $_SERVER['PHP_SELF'] kann alles mögliche zeug enthalten, dass der Client mitsendet -> XSS-Attacken. Brauchst Du hier nicht unbedingt action="?" erfüllt einen sehr ähnlichen Zweck.
  • Warum hast Du im Formular zwei Tabellen? Zumindest bisher machst Du nichts mit der Tabelle der bisherigen Werte, das ein Formular benötigt

PHP-Code:
<?php
$mysql 
mysql_connect('..''..''..') or die(mysql_error());
mysql_select_db('..'$mysql) or die(mysql_error());

if (isset(
$_POST['name'])) {
  
$sql "
    INSERT INTO
      Info
    SET
      name='"
.mysql_real_escape_string($_POST['name'], $mysql)."'
  "
;
  if (
mysql_query($sql$mysql)) {
    echo 
'<p>  New info added  </p>';
  }
  else {
    echo 
'<p>Error adding new info: ' mysql_error() . '</p>';
  }
}

$sql "
  SELECT
    name
  FROM
    Info
"
;
$result mysql_query($sql$mysql) or die(mysql_error());
?>
<form action="?" method="post" >
  <p>
    neuer Eintrag:
    <td><input name="name" type="text"/></td>
    <input type="submit" value="SUBMIT" />
  </p>
</form>
<table border="1">
  <tr><th>Name</th></tr>
<?php
while ($house mysql_fetch_array($resultMYSQL_ASSOC)) {
  echo 
'<tr><td>'htmlspecialchars($house['name']), "</td></tr>\n";
}
?>
</table>
David 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
option value als submit HTML, Usability und Barrierefreiheit 4 18.02.2010 13:36
submit erst nach JS Passwortabfrage? ACiD JavaScript, Ajax und mehr 6 28.10.2008 16:09
form action wird vor submit ausgeführt abcluberer PHP Tipps 2008 5 14.05.2008 10:32
Notice: Undefined variable: submit in C:\wamp... PHP Tipps 2006 11 13.08.2006 13:35
php: site-refresh nach submit mittels header PHP Tipps 2005-2 9 23.09.2005 15:22
Weiterleitung auf eine andere Seite nach Submit... PHP Tipps 2005-2 6 30.08.2005 08:35
Plausiprüfung bei submit PHP Tipps 2005 2 27.05.2005 11:14
button (submit) ->action auf https PHP Tipps 2005 7 18.04.2005 18:32
[Erledigt] Firefox: Statuszeile verschwindet nicht beim neuen Fenster. HTML, Usability und Barrierefreiheit 7 07.03.2005 09:55
input + submit ? HTML, Usability und Barrierefreiheit 9 27.02.2005 23:31
Submit als Link Bronks HTML, Usability und Barrierefreiheit 2 03.01.2005 15:44
[b]text automatisch bei submit in textfeld einfügen[/b] PHP Tipps 2004-2 10 05.12.2004 13:44
wenn Formularfeld angeklickt verschwindet der Inhalt obi HTML, Usability und Barrierefreiheit 1 05.12.2004 13:05
Greenhorn: Reload einer IMG-Datei nach SUBMIT einer Form PHP Tipps 2004 3 20.09.2004 21:19
Form nach submit PHP Tipps 2004 1 02.06.2004 13:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
c nach ausgabe nicht verschwinden, http://www.php.de/php-einsteiger/51832-erledigt-eingabetextfeld-verschwindet-nach-submit.html, google eingabe verschwindet, google eingaben verschwinden, php formular verschwindet nach eingabe, text verschwindet nach eingabe, pho verschwindet schrift, td submit verschwindet, html submit ausgabe verschwindet, javascript eingabefeld verschwindet, php formular verschwindet nach submit, html verschwindet nach submit, eingabe verschwindet, text nach submit anzeigen, submit ausgabe verschwindet, javascript warum verschwinden die formulareingaben?, html submit verschwinden alles, html text verschwindet gleich nach eingabe, schrift verschwindet nach eingabe, eingabefeld verschwindet nach oben

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