Ich bin neu in WordPress, kann aber gut PHP programmieren, wenn ich Wert aus dem Textfeld holen und in der Datenbank in WordPress speichern möchte. Kann ich das tun?
zum Beispiel
form1.html
<form name="form" method="post" action="value_get.php">
<input type="text" id="t1" name="t1">
<input type="submit" value="submit">
</form>
value_get.php
<?php
$firstname = mysqli_real_escape_string($con, $_POST['tb1']);
$con=mysqli_connect("localhost","root","","wordpress");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO wp_exTable (FirstName)
VALUES ('$firstname')");
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
Kann ich diese Dinge in WordPress tun? mit ein wenig zwicken
Eine einfache Lösung, um den Wert in der Datenbank zu speichern, wäre die Verwendung der Funktion add_option()
von WordPress. Es speichert den Wert in der Tabelle wp_options
in der Datenbank.
$firstname = mysqli_real_escape_string( $con, $_POST[ 'tb1' ] );
add_option( 'first_name' , $firstname );
echo "1 record added";
Sie können dann jederzeit mit get_option( 'first_name' )
auf den Wert zugreifen.
Wenn Sie individuellere Abfragen ausführen möchten, verwenden Sie $wpdb->query()
. Weitere Informationen finden Sie auf der Seite ẁpdb
Codex.
befolgen Sie die folgenden Schritte, um ein Textfeld im Front-End anzuzeigen und Daten in der Datenbank zu speichern:
Erstellen Sie eine PHP-Datei in Ihrem aktivierten Themenordner und geben Sie den folgenden Code ein:
Erstellen Sie jetzt eine Seite in WordPress mit dem Seitenmenü im Back-End. Im Abschnitt Neue Seite hinzufügen wird der Abschnitt "Seitenattribut" auf der rechten Seite der Seite angezeigt. Wählen Sie nun Ihre Vorlagenseite aus der Dropdown-Liste "Vorlage" aus und veröffentlichen Sie die Seite .
Zeigen Sie nun die Seite an und Sie finden das Textfeld auf der Seite.
Anstatt native PHP Funktionen wie mysqli_connect
zu verwenden, sollten Sie die Möglichkeiten nutzen, die WordPress bietet, um dasselbe zu tun. Dies ist aus Kompatibilitäts- und Wartbarkeitsgründen besser. Sie können nämlich die wpdb
class verwenden, die nicht nur für WordPress-eigene Datenbanktabellen verwendet werden kann, sondern auch für externe. Um neue Einträge hinzuzufügen, können Sie die Methode insert()
der Klasse verwenden. Weitere Informationen finden Sie im Abschnitt INSERT rows auf der Seite wpdb
Codex. Nachfolgend finden Sie einen beispielhaften Code:
global $wpdb;
$fname = $_POST[ 'txt_fname' ];
$lname = $_POST[ 'txt_lname' ];
$tbl = 'wp_exTable';
$others = $_POST[ 'txt_email' ];
$wpdb->insert(
'wp_exTable',
array(
'first_name' => $fname,
'last_name' => $lname,
'email' => $others
),
array(
'%s',
'%s',
'%s'
)
);
Zu guter Letzt sollten Sie wahrscheinlich darüber nachdenken, ob Sie tatsächlich einen zusätzlichen Tisch benötigen. Sie könnten zum Beispiel Post-Meta wie @RamShengale verwenden.
Bitte versuchen Sie diesen Code für die Aktualisierung der Datensätze in der Datenbank in WordPress. Erstellen Sie dazu zunächst einen file.php
in Ihrem ausgewählten WordPress-Ordner und verwenden Sie diese Datei dann als Vorlage. Und dieser Code wird perfekt funktionieren. Wenn jemand den richtigen regulären Ausdruck zur Validierung des Namens kennt, schlagen Sie mich bitte vor. Danke euch allen.
<?php /* Template Name: your template name */ ?>
<style>
.error {color: #FF0000;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"
type="text/javascript"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css"
rel="Stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function() {
//this calculates values automatically
$("#name").keypress(function() {
validate();
});
});
function validate() {
/*=============== Validate The Name ======================*/
var fname =document.forms["abc"]["name"].value;
var name_regex = /^[a-z A-Z]+$/;
if(fname == 0||fname==null )
{
document.getElementById('nameErr').innerHTML = "* Please fill your name";
return false;
}
else
{
if (!fname.match(name_regex)) {
document.getElementById('nameErr').innerHTML = "* Name should be alphabet";
return false;
}
else{
document.getElementById('nameErr').innerHTML = "";
}
}
}
<?php get_header(); ?>
<?php
if (!empty($_POST)) {
global $wpdb;
$table = wp_tablename;
$data = array(
'firstname' => $_POST['yourname']
);
$format = array(
'%s'
);
$success=$wpdb->insert( $table, $data, $format );
if($success){
echo 'Thanks for submitting your information soon we will contact to you';
}
}
else {
?>
<div class="container">
<div class="row">
<form method="post" class="form-horizontal" id="abc" onsubmit="return validate(this)">
<div class="col-md-3">Full name: </div><div class="col-md-8"> <input type="text" name="yourname" class="form-control" id="name"><span class="error" id="nameErr"></span></div>
<div class="col-md-6"><input type="reset" name="reset" class="btn btn-danger"></div><div class="col-md-6"><input type="submit" value="Register" class="btn btn-success"></div>
</form>
</div>
</div>
<?php } ?>
<?php get_footer(); ?>