2012-04-10 19 views
0

Ich entwarf plain HTML-Site, mit einem Anfrageformular.Es hat einige Felder wie Name, Adresse usw. Onclick senden Schaltfläche, wollte ich diese Daten in die Datenbank gehen. Ich erstellte Datenbank und Tabelle mit phpmyadmin auf XAMPP Server.PHP-Function Call

Mein Code ist wie folgt (hello.php):

<script> 
function insert_db() 
{ 

    <?php 
    $username = $_POST['name']; 
    print ($username); 
    mysql_connect("localhost","root",""); 
    mysql_select_db("addressbook"); 

    mysql_query("insert into colleague values ('$username')"); 

    ?> 


     } 
</script> 

    <form method="post"> 
    <input type="name" name="name" /><br /> 
    <input type="submit" name="mysubmit" value="Submit" onclick="insert_db()"/> 

Bei Klick auf Absenden-Button, zwei Einträge in die database.One gemacht ist leer und andere wird Wert eingegeben. wie man die Funktion nur einmal anruft ?? Gibt es noch einen anderen Weg ..

+1

arbeiten. PHP wird auf dem Server ausgeführt, wenn die Seite geladen wird, nicht wenn eine JavaScript-Funktion aufgerufen wird, mit der es gedruckt wird. – Bojangles

Antwort

4

Sie können PHP und Javascript so nicht mischen. Sie sehen, dass PHP immer serverseitig ausgeführt wird, unabhängig davon, wo es sich in der Datei befindet (PHP kennt JavaScript nicht). Daher wird beim ersten Laden der Seite eine leere Zeile eingefügt (da $ _POST ['name'] leer ist). Wenn Sie dann auf "Senden" klicken, wird nichts unternommen, da der JavaScript-Code leer ist, senden Sie das Formular an den Server und bewerten Sie den PHP-Code erneut, diesmal mit dem gewünschten Effekt.

Eine richtige Weg, dies zu tun wäre:

<?php 
if (!empty($_POST['name'])){ // check if form values are there 
    $username = $_POST['name']; 
    print ($username); 
    mysql_connect("localhost","root",""); 
    mysql_select_db("addressbook"); 

    mysql_query("insert into colleague values ('$username')"); 
} 
?> 

<form method="post"> 
    <input type="name" name="name" /><br /> 
    <input type="submit" name="mysubmit" value="Submit" /> 
</form> 

Sie auch sollten Sie, bevor Sie diese ein paar grundlegende PHP-Tutorials lesen möchten Ihren Weg durch eine PHP Tutorial erste

5

Sie können, ich wiederhole NICHT, JS und PHP auf diese Weise kombinieren.

Klicken Sie mit der rechten Maustaste auf die Seite, wählen Sie Quelle anzeigen, und Sie werden deutlich sehen, warum.

PHP wird ausgeführt, BEVOR der Browser die Seite erhält.

Daher erhalten Sie einen leeren Datensatz beim Laden des Formulars, dann ein ausgefülltes, wenn Sie es senden, weil $username zu dieser Zeit definiert ist.

+0

okk ... ich bin neu in php .... – poonam