2016-11-21 5 views
1

Ich habe ein Problem mit dem Schreiben meiner ersten Wordpress-Plugin.Wert Wert in PHP beibehalten

Ich erstelle ein Formular für eine Einstellungsseite, aber ich weiß nicht, wie die Werte speichern.
Ich brauche das für die folgenden zwei Gründen zu tun,

  1. Ich brauche die gewählte Option ausgewählt bleiben, wenn Sie die Seite
  2. neu laden Ich brauche den Wert für den späteren Gebrauch zu verwenden.

kann mir jemand dabei helfen?

Code:

function e_option_page() { 

?> 

    <form action="" id="testimonialsform" method="post"> 
     <input type="radio" name="Option" value="Option 1">Option 1 
     <input type="radio" name="Option" value="Option 2">Option 2 
     <input type="radio" name="Option" value="Option 3">Option 3 
     <input type="submit" name="submit" value="Submit" /> 
    </form> 
<?php 
    if (isset($_POST['submit'])) { 
     if(isset($_POST['Option'])){  
      echo "You have selected :".$_POST['Option']; // Displaying Selected Value 
     }//End isset 
    }//End isset 
}//End function 


function e_setting_page() { 
    add_submenu_page('edit.php?post_type=testimonials', 'Settings', 'Settings', 'edit_posts', "settings",'e_option_page'); 
} 

add_action('admin_menu' , 'e_setting_page'); 
+2

ternäre Operator mit Sitzungen sollte es tun. –

+0

verwenden Sie eine Session-Variable, wenn Sie in eine andere Seite verwenden möchten –

Antwort

0

Sie das Formular aus und die Werte in der PHP-Skript zu verarbeiten.

PHP Processing Script: 
<?php 
session_start(); 
$_SESSION[ 'option' ] = $_POST[ 'Option' ]; 
?> 

Form Page 
<?php session_start(); ?> 
<form action="" id="testimonialsform" method="post"> 
    <input type="radio" name="Option" value="Option 1" <?php echo ($_SESSION[ 'option' ] == "Option 1" ? 'checked' : ''); ?>>Option 1 
    <input type="radio" name="Option" value="Option 2" <?php echo ($_SESSION[ 'option' ] == "Option 2" ? 'checked' : ''); ?>>Option 2 
    <input type="radio" name="Option" value="Option 3" <?php echo ($_SESSION[ 'option' ] == "Option 3" ? 'checked' : ''); ?>>Option 3 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

Die ternäre if-Anweisung funktioniert wie folgt:

echo (1 = 1 ? "true" : "false"); 

https://davidwalsh.name/php-shorthand-if-else-ternary-operators

+0

Hallo, es funktioniert, aber diese Warnungen angezeigt: Warnung: session_start(): Sitzungscookie kann nicht gesendet werden - Header bereits gesendet von (Ausgang gestartet am C: \ xampp \ htdocs \ wordpress \ wp-includes \ formatierung.php: 5011) in C: \ xampp \ htdocs \ wordpress \ wp-content \ plugins \ hebung-testimonials \ hebung-testimonials.php on line 122 Warnung: session_start(): Kann nicht Session Cachebegrenzer senden - Header bereits gesendet (Ausgabe gestartet unter C: \ xampp \ htdocs \ wordpress \ wp-includes \ format.php: 5011) in C: \ xampp \ htdocs \ wordpress \ wp-content \ plugins \ level-testimonials \ Elevation-testimonials.php on line 122 –

+0

Wie wäre es mit dem Entfernen von session_start(); seit Wordpress startet eine Sitzung, sobald Sie sich einloggen –

+0

dont 'Sorgen über den obigen Kommentar ... Hallo, es funktioniert super..aber ich habe eine Frage ... der Wert ist irgendwo speichern? weil ich auf diesen Wert zugreifen muss –