2016-10-19 4 views
0

Hallo kann mir jemand sagen, was Problem in dieser Form ist. seine zeigen varible nicht in urlSuchformular Aktion URL nicht anzeigen PHP-Variable

<form class="navbar-form navbar-left" method="post" action="test.php?q=<?php echo $searchb;?>" role="search" style="padding: 3.5px 90px;"> 
    <div class="form-group"> 
     <input type="text" name="searchb" class="form-control" autocomplete="off" placeholder="Search" /> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

PHP-Code hier

if (isset($_POST['searchb'])) { 
    $searchb = $_POST['searchb']; 
} 

, wenn der Eingang etwas in Form und Action-URL keinen Wert zeigen

test.php?q= 

aber wir Variable ihren Show-Wert Echo.

+0

gefüllt werden, was die Ausgabe von ' '? URL zeigt keinen Wert, weil q leer ist. und Eingabewert als 'POST' senden. Wenn Sie Werte in URL sehen wollen, dann ändern Sie den Beitrag in' get' –

+0

entfernen Sie einfach dieses '? q = 'PHP-Block aus dem HTML-Formular. –

Antwort

1

erstes Mal, dass Form $_POST['searchb'] geladen ist leer, so Aktion test.php?q= nach Last Form gleich ist, wenn Sie Formular $_POST['searchb'] einreichen dann

+0

wie url test.php? q = zu testen? q = in htaccess –

1

Der Teil: action="test.php?q=<?php echo $searchb;?>" ist zunächst unlogisch und vor allem unnötig, da Sie POST ing Ihre Form sind. Es wäre gültig gewesen, wenn $searchb vordefiniert wurde. Da es jedoch ein Teil der Form ist; es wird immer NULL sein, da es nie deklariert wurde, aber erwartet wurde, dynamisch auf Formular-Submit hinzugefügt zu werden, was nicht passieren würde. Sie tun es in einem der 2 Möglichkeiten:

OPTION # 1 - PASSING q VIA HIDDEN INPUT:

<!-- YOU DON'T NEED THE echo $searchb PART IN YOUR FORM'S ACTION BECAUSE --> 
    <!-- THAT VALUE IS NOT PART OF THE ACTION AS IT IS NOT EVEN SET AT ALL --> 
    <form class="navbar-form navbar-left" method="post" action="test.php" role="search" style="padding: 3.5px 90px;"> 
     <div class="form-group"> 
      <input type="text" name="searchb" class="form-control" autocomplete="off" placeholder="Search" /> 
      <!-- ADD THE q AS HIDDEN INPUT ELEMENT WITH A VALUE --> 
      <input type="HIDDEN" name="q" value="Some value" /> 
     </div> 
     <button type="submit" class="btn btn-default">Submit</button> 
    </form> 

    <?php 
     // INSIDE OF test.php SCRIPT; DO; 
     if (isset($_POST['searchb'])) { 
      $searchb = $_POST['searchb']; 
     } 

OPTION # 2: & EINSTELLUNG Q ein vordefiniertes mit GET VALUE

<?php $param = "some-predefined-value"; ?> 
    <form class="navbar-form navbar-left" method="GET" action="test.php?<?php echo $param;?>" role="search" style="padding: 3.5px 90px;"> 
     <div class="form-group"> 
      <input type="text" name="searchb" class="form-control" autocomplete="off" placeholder="Search" /> 
     </div> 
     <button type="submit" class="btn btn-default">Submit</button> 
    </form> 

    <?php 
     // INSIDE OF test.php SCRIPT; DO; 
     // BUT REMEMBER TO CHECK INSIDE THE `GET` GLOBAL 
     if (isset($_GET['searchb'])) { 
      $searchb = $_GET['searchb']; 
     } 

bessere Option für Ihren Anwendungsfall: mit GET & EINSTELLUNG Q von dem Eingang

<!-- STILL NO NEED FOR SETTING QUERY PARAMETERS MANUALLY--> 
    <!-- THE GET METHOD WOULD TAKE CARE OF THAT FOR YOU ONCE THE FORM IS SUBMITTED --> 
    <form class="navbar-form navbar-left" method="GET" action="test.php" role="search" style="padding: 3.5px 90px;"> 
     <div class="form-group"> 
      <!-- NOTICE THAT THE NAME OF THE INPUT FIELD CHANGED TO; q HERE --> 
      <input type="text" name="q" class="form-control" autocomplete="off" placeholder="Search" /> 
     </div> 
     <button type="submit" class="btn btn-default">Submit</button> 
    </form> 

    <?php 
     // INSIDE OF test.php SCRIPT; DO; 
     // BUT REMEMBER TO CHECK INSIDE THE `GET` GLOBAL 
     if (isset($_GET['q'])) { 
      $searchb = $_GET['q']; 
     } 
+0

danke für die Antwort, aber wir brauchen URL Link wie test.php? Q = somevalue, wenn wir einen Suchwert –

+0

@SaadAwan Überprüfen Sie den aktualisierten Beitrag und in diesem Fall könnten Sie einfach 'POST' zu' GET' ändern ..... .. – Poiz

+0

Wie url zu ändern test.php? Q = zu testen? Q = in htaccess –