1

次のようなドロップダウン リストを用意します。

 <script language="JavaScript" type="text/javascript">
 <!--
 function showSelected()
 {
var selObj = document.getElementById('city');
var cityTextObj = document.getElementById('cityText');

var selIndex = selObj.selectedIndex;
cityTextObj.value = selObj.options[selIndex].text;
 }
 //-->
 </script>

 <form method="get"><font class="text5">City</font>
    <select id="city" onchange="showSelected();this.form.submit();" style="width:350px">
    <option value="0">Please select</option>
        <option value="1">NewYork</option>
        <option value="2">Canada</option>
        <option value="3">Delhi</option>
        <option value="4">HongKong</option>
    </select>
    <input type="hidden" id="cityText" name="cityText"/>

 </form>

データベースの選択:

 <?php
 $sql = "SELECT * FROM general WHERE (day2sql >= now())";
 if(isset($_GET['cityText'])){
$city1 = mysql_real_escape_string($_GET['cityText']);
$sql .= " AND (gcity = '$city1')";  
 }

この機能は正常に動作しています。問題は、誰かが香港を選択すると、フォームが送信され、香港に従って内容が表示されることです。しかし、ドロップダウンリストに香港のテキストを保持できません。デフォルトのテキスト「選択してください」になります。

そして、「すべて」、「今日」、「明日」などの 5 つのリンクがあります。香港を選択した場合。そして、これらの 5 つのリンクのいずれかをクリックします。 HongKong ALL、HongKong TODAY、HongKong TOMORROW に従ってデータを取得したい...... すべての都市のように... これは可能ですか?

4

2 に答える 2

1
    <option value="1" <?= $_GET['cityText'] == "NewYork" ? 'selected' : '' ?> >NewYork</option>
    <option value="2" <?= $_GET['cityText'] == "Canada" ? 'selected' : '' ?> >Canada</option>
    <option value="3" <?= $_GET['cityText'] == "Delhi" ? 'selected' : '' ?> >Delhi</option>
    <option value="4" <?= $_GET['cityText'] == "HongKong" ? 'selected' : '' ?> >HongKong</option>

編集:

ALL/TODAY/TOMORROW の場合は、フォーム内のメニューまたはラジオ ボタンにすると簡単です。その後、フォームが送信されると、PHP は適切なクエリを実行できます。

于 2012-09-03T16:57:39.020 に答える
0

コードにいくつかの変更を加える必要があります

<script language="JavaScript" type="text/javascript">
<!--
function showSelected(show)  //add parameter 'show' to keep value from user click
{
 var selObj = document.getElementById('city');
 var cityTextObj = document.getElementById('cityText');

 var selIndex = selObj.selectedIndex;
 cityTextObj.value = selObj.options[selIndex].text+"&show="+show;   //add variable 'show' to send
}
//-->
</script>

<form id="frm" method="get"><font class="text5">City</font>
  <select id="city" style="width:350px">
    <option value="0">Please select</option>
    <option value="1" <?php if($_GET["cityText"] == "NewYork") echo "selected"; ?> >NewYork</option>
    <option value="2" <?php if($_GET["cityText"] == "Canada") echo "selected"; ?> >Canada</option>
    <option value="3" <?php if($_GET["cityText"] == "Delhi") echo "selected"; ?> >Delhi</option>
    <option value="4" <?php if($_GET["cityText"] == "HongKong") echo "selected"; ?> >HongKong</option>
  </select>
</form>

<a href="#" onclick='showSelected("ALL");document.getElementById("frm").submit();'>ALL</a>
<a href="#" onclick='showSelected("TODAY");document.getElementById("frm").submit();'>TODAY</a>
<a href="#" onclick='showSelected("YESTERDAY");document.getElementById("frm").submit();'>YESTERDAY</a>
<a href="#" onclick='showSelected("TOMORROW");document.getElementById("frm").submit();'>TOMORROW</a>

そしてあなたのphpコード:

<?php
 $show = $_GET["show"]; //using $show you can set the query to ALL,TODAY, or etc
 $sql = "SELECT * FROM general WHERE (day2sql >= now())";
 if(isset($_GET['cityText'])){
$city1 = mysql_real_escape_string($_GET['cityText']);
$sql .= " AND (gcity = '$city1')";  
 }
于 2012-09-03T17:10:28.360 に答える