Jak zmodyfikować ciąg kwerendy do zwykłego adresu URL za pomocą PHP?

głosy
0

Mam następujący formularz HTML:

<div class=row form>
    <div class=col-md-offset-3 col-md-6 col-md-offset-3>
    <form class=form-inline role=form method=get action=<?php echo htmlspecialchars(SITE_URL.'location'); ?>>
        <div class=form-group col-md-10 no-p-m>                      
            <select class=form-control id=basic name=location required>
            <?php
            $get_location = mysqli_query($conn, SELECT * FROM product_sub_area);
            if(mysqli_num_rows($get_location) == 0 ) {
                $choose = 'No City found';
            } else {
                $choose = 'Choose City';
            }
            ?>
            <option value=><?php echo $choose; ?></option>
            <?php                                         
            while($get_location_result = mysqli_fetch_array($get_location) ) {
                $location_id = (int) $get_location_result['psub_area_id'];
                $location_name = htmlspecialchars($get_location_result['psub_name']);
                echo <option value='$location_id'>$location_name</option>;
            }
            ?>                    
            </select>
        </div>
        <div class=form-group col-md-2 no-p-m id=basic>  
            <input type=submit class=btn btn-default filter-search value=BROWSE>
        </div> 
    </form>                
    </div>
</div>  

Kiedy przesłać ten formularz URL jest jak pokazano poniżej:

http: // localhost / wolny zawód / happiechef / Położenie = 1?

Ale muszę pokazać tego typu URL:

http: // localhost / wolny zawód / happiechef / lokalizacja / carlifonia

tutaj /location/jest strona o nazwie location.php. Jestem ukrywa rozszerzenia stronę użyciu .htaccess.

Tak od location.phpstrony chcę, aby uzyskać $_GET['location']wartość =$location_id

dla np.

$ _ GET [ 'miejsce'] = 1 lub 2, (wybór opcji wartość znacznika)

Istniejący kod .htaccess

ErrorDocument 404 not-found.php
RewriteEngine On        

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^location/([\w-]+)$ location.php?location=$1 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
Utwórz 20/10/2016 o 14:58
użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Oto przykład, jak można to osiągnąć w jQuery:

Po pierwsze, dodaj iddo <form>tagu, dzięki czemu można go łatwo uzyskać dostęp do:

<form id="formname" class="form-inline" role="form" method="get" action="<?php echo htmlspecialchars(SITE_URL.'location'); ?>">

Trzeba również duplikat idnazwie "basic". Upewnij się, zostawić tylko na <select>tagu i usunąć drugi.

Następnie w JS:

$("#formname").submit(function(event) {
    event.preventDefault();
    var loc = $("#basic option:selected").text();
    window.location.href = '/freelancer/happiechef/location/' + loc;
});

To przekazania użytkownikowi adresu URL, na przykład http://localhost/freelancer/happiechef/location/carlifonia. Wtedy .htaccess przepisać ten adres URL location.php?location=california.

Odpowiedział 20/10/2016 o 15:37
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more