0

私のウェブサイトには郡のドロップダウンがあります...

<form method="post" action="/people.php" >
            <select name="county" onchange="this.form.submit()" >
                <option>--Select a County--</option>
                <option value="Avon">Avon</option>
                <option value="Bedfordshire">Bedfordshire</option>
                <option value="Berkshire">Berkshire</option>
            </select>
</form>

次に、人のページにクエリを表示します...

$county = $_POST['county'];

$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county");
$sth->execute(array(':county' => $county));

URLリライトを使用して郡をURLに含めたいので、郡を選択した後にページに移動すると、次のように表示されません。

'www.mysite.com/people.php'

しかし、として表示されます

'www.mysite.com/people-in-avon'

私はまだPHPの初心者ですが、これを実行したい場合は、GETメソッドを使用し、データをphpページに投稿して、people.phpにリダイレクトする必要がありますか?ページにクエリを表示するのはPHPの悪い習慣ですか?

これが理にかなっているといいのですが?

4

2 に答える 2

2

[国]の人々のURLを使用できるようにするには、最初にいくつかの基本的なリダイレクトで.htaccessを使用する必要があります。

RewriteEngine on
RewriteRule ^people-in-(.*) /people.php?county=$1 [L]

あなたのpeople.phpで:

<?php

// you county is set in GET via the .htaccess
$county = $_GET['county'];

// database query
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county");
$sth->execute(array(':county' => $county));

?>

URLを作成するには、特殊文字、アクセント、スペースを置き換える必要があります...ただし、郡が1つの単語で、特殊文字がない場合は、次のようにすることができます。

<?php 

// to redirect
$county = $_POST['county'];
$url = '/people-in-' . $county;
// redirect
header('Location:' . $url);

IDで郡を取得するには、次のようにします(擬似コード)。

RewriteEngine on
RewriteRule ^people-in-.*-([0-9]+) /people.php?county_id=$1 [L]

郡を表示するには:

// you county_id is set in GET via the .htaccess
$county_id = $_GET['county_id'];

郡にルーティングするには:

// to redirect
$county_id = $_POST['county_id'];

// fetch the county by id
// BASIC string cleaning
$county = str_replace(' ', '-', $county);

$url = '/people-in-' . $county . '-' . $county_id;

// redirect
header('Location:' . $url);
于 2012-10-24T07:33:22.513 に答える
1

これを使って

<form method="post" action="/people.php" >
            <select name="county" id="selectform" >
                <option>--Select a County--</option>
                <option value="Avon">Avon</option>
                <option value="Bedfordshire">Bedfordshire</option>
                <option value="Berkshire">Berkshire</option>
            </select>
</form>

Javaスクリプトで

<script>
 $(document).ready(function(){
 $("#selectform").change(function(){
  window.location="www.mysite.com/people-in-"+$(this).val()+";
 })
</script>

.htaccessファイルはこれを使用します

RewriteEngine On
RewriteRule   ^people-in-(.*) people.php?option=$1  [QSA,L]

とでpeople.php

$value=explode("-",$_GET['option']);
$newvalue=$value[2];
于 2012-10-24T07:32:55.317 に答える