2016-03-26 13 views
0

Ich versuche, ein einfaches Buchungsformular zu machen. Erste verfügbare Städte und Pakete auf einer Seite aus der Datenbank Wenn der Benutzer auf die Schaltfläche BOOK auf der Seite klickt, wird die Seite automatisch zur Aktionsseite weitergeleitet, wo das ausgewählte Formular/Paket automatisch zur Tabelle booking hinzugefügt werden soll BestätigungsmailWie übergebe ich eine retrieve Datenbankdaten an eine andere Seite?

Der folgende Code erzeugt die verfügbaren Pakete aus der Datenbank:

include 'inc/db_connect.php';

// Arbeits Verbindung zum DB

$sql="SELECT pkg, fcity, dcity, price, details FROM tour_package WHERE fcity='".$fcity_search."' ORDER BY fcity ASC"; 
$sqlresult=mysqli_query($con,$sql); 
$afct=mysqli_affected_rows($con); 
while($pkg=mysqli_fetch_array($sqlresult,MYSQLI_ASSOC)){ 
    $num[]=$pkg['pkg']; 
    $fcity[]=$pkg['fcity']; 
    $dcity[]=$pkg['dcity']; 
    $price[]=$pkg['price']; 
    $details[]=$pkg['details']; 
    $num++; 
} 

$i=0; 
$book_btn_id = 1; 
while($i < $afct) 
{ 
    echo '<form action="book_tour_action.php">'; 
      $num_var_to_db = $num[$i]; 
     echo '<span class="search-class-row"><div class="search-results-label">Package : </div>'.$num[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">From : </div>'. $fcity[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">Destination : </div>' . $dcity[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">Price : </div>' .$price[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">Details :</div>' . $details[$i].'<br/></span>'; 
     //echo '<a href="#" class="booking-btn" name="bb'.$book_btn_id++.'"> BOOK </a>'; 
     echo '<input type="submit" value="BOOK" class="booking-btn" name="bb'.$book_btn_id++.'">'; 
     echo '<br><br/><hr/>';       
     $i++; 
    echo '</form>'; 
} 

I festgelegt haben einen dynamischen Namen in die BOOK Taste.

book_tour_action.php:

echo $num_var_to_db; 
$sql = "INSERT INTO booking (num_var_to_db) 
VALUES ('$num_var_to_db')"; 

Aber es sagt nicht definierte Variable, wenn die BOOK Schaltfläche geklickt wird.

Das bedeutet, dass die Daten nicht an book_tour_action.php übergeben werden, denke ich. Wie kann ich es funktionieren lassen?

+0

Verwendung 'mysqli_num_rows()' überprüfen Anzahl der Zeilen zurückgeben Ihre SELECT-Abfrage statt 'mysqli_affected_rows() 'und übergeben Sie Ihre Anfrage Ergebnis nicht Ihre Verbindung in es – Saty

+0

Plus ich nicht in der Lage zu verstehen, was Sie mit' name = "bb". $ book_btn_id ++ zu tun. '">';' – Saty

+0

Es gibt keine "$ BOOK" In Ihrem Code scheint es seltsam, dass Sie eine undefinierte Variable erhalten würden. Gibt es mehr zu diesem Code? – chris85

Antwort

1

Sie müssen $num_var_to_db Wert in versteckten Eingabefeld im Formular halten, um den Wert zu erhalten. Versuchen Sie, wie unten tun:

echo '<form action="book_tour_action.php">'; 
    $num_var_to_db = $num[$i]; 
    echo '<input type="hidden" name="num_var_to_db" value="'.$num_var_to_db.'">' 
     echo '<span class="search-class-row"><div class="search-results-label">Package : </div>'.$num[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">From : </div>'. $fcity[$i].'<br/></span>'; 
    echo '<span class="search-class-row"><div class="search-results-label">Destination : </div>' . $dcity[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">Price : </div>' .$price[$i].'<br/></span>'; 
     echo '<span class="search-class-row"><div class="search-results-label">Details :</div>' . $details[$i].'<br/></span>'; 
    //echo '<a href="#" class="booking-btn" name="bb'.$book_btn_id++.'"> BOOK </a>'; 
    echo '<input type="submit" value="BOOK" class="booking-btn" name="bb'.$book_btn_id++.'">'; 
     echo '<br><br/><hr/>';       
     $i++; 
echo '</form>'; 

und in der PHP-Seite können Sie nach dem Wert zu erhalten:

$num_var_to_db = $_REQUEST['num_var_to_db']; 
Verwandte Themen