2012-03-27 8 views
-2

Wie Sie eine JavaScript-Schaltfläche erstellen, die Informationen aus dem Formular an den PHP-SQL zu nehmen:Wie schreibe ich eine Javascript-Schaltfläche, die Daten enthält?

<form> 
    <input type="text" placeholder="Name" name="name" class="name" /></br> 
    <input type="text" placeholder="Phone Number" name="number" class="number"/></br> 
    <input type="text" placeholder="Location " name="location" class="location"/></br> 
    <input type="submit" value="Add Booking" /> 
</form> 

?php 
$name = $_GET['name']; 
$number = $_GET['number']; 
$location = $_GET['location']; 

$con = mysql_connect(".....",".....","....."); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

("chanh", $con); 
$sql ="INSERT INTO book (name, number, location,timestamp) 
VALUES ('$name', '$number','$location',NOW())"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "1 record added" 

mysql_close($con); 
?> 

Jede mögliche Hilfe würde geschätzt werden, da ich nur ein Rookie bin! Danke

+0

'Absenden Button' ??? – gdoron

+0

fügen Sie eine Schaltfläche hinzu und verwenden Sie dann onclick = "document.forms [0] .submit()" – kpcrash

+0

Ihr Formular benötigt sowohl die Aktions- als auch die Methodenattribute, wenn Sie es übermitteln möchten. – j08691

Antwort

0

Erstellen Sie ein, und legen Sie fest, dass beim Klicken auf die Schaltfläche das Formular gesendet wird.

dh
but = document.getElementById('clickButton'); 
formToSubmit = document.getElementById('myForm'); 

but.onclick = function(){ 
    formToSubmit.submit(); 
}; 
1

Sie müssen nur angeben, wo Sie bilden

<form action="submit.php" method="get"> 
    <input type="text" placeholder="Name" name="name" class="name" /></br> 
    <input type="text" placeholder="Phone Number" name="number" class="number"/></br> 
    <input type="text" placeholder="Location " name="location" class="location"/></br> 
    <input type="submit" value="Add Booking" /> 
</form> 

Javascript vorgelegt wird hier nur erforderlich, wenn Sie irgendeine Art von Prüfung durchführen möchten

HINWEIS

Vermeiden Sie das direkte Hinzufügen von Variablen zu Ihrer Abfrage. Sie sind anfällig für SQL injection.

Hier ist, was Sie tun können:

$con = mysql_connect(".....",".....","....."); 
$name = mysql_real_escape_string($_GET['name']); 
$number = mysql_real_escape_string($_GET['number']); 
$location = mysql_real_escape_string($_GET['location']); 
0

Sie JavaScript nicht benötigen ein Formular einzureichen. Es sieht so aus, als ob Sie gerade die < von <?php für jetzt vermissen.

Sie könnten explizit die Aktion und die Methode für das Formular-HTML-Element angeben, aber wenn Sie dies nicht tun, ist es eine GET-Anfrage, die an die aktuelle URL (Webadresse) gesendet wird.

Wirklich, wenn Sie etwas anderes als das Abrufen von Daten (wie eine Suche) tun, sollte Ihr Formular einen HTTP POST, nicht ein GET verwenden. Für mehr Verständnis, warum diese Art von etwas wichtig ist, siehe What should every programmer know about web development. Das ist jedoch ein sehr großes Thema!

0

Sie müssen nur das Formular Postback, mit anderen Worten, stellen Sie eine Aktion auf der Form, wie in:

<form id="mainForm" action="process.php" method="post">.. 

und füge eine onclick Handler auf die Schaltfläche wie folgt:

<input type="submit" value="Add Booking" onclick="javascript:document.getElementById('mainForm').submit();" /> 

Allerdings stelle ich die Methode nicht auf post; dies wird Ihre PHP-Code benötigen, um zu ändern:

$name = $_POST['name']; 
$number = $_POST['number']; 
$location = $_POST['location']; 

Mit POST in diesem Fall möglicherweise nicht notwendig, aber Sie müssen sich bewusst sein, dass GET unter Verwendung der Form Parameter in der URL codieren, wie in process.php?name=value&numner=value... und einige dieser Informationen können sensibel sein und daher wünschenswert sein, dass sie dem Server im Hauptteil der HTTP-Anfrage übermittelt werden, im Gegensatz zu den in der URL codierten Daten.

Verwandte Themen