0

私の問題はオプションの値です
<option selected="selected" disabled="disabled">Select a city...</option>
。問題は次のとおりです。このオプションには値がありませんが、phpコードはその値を*'都市を選択'*と見なします。したがって、都市が選択されていなくても、私のコードif(isset($_POST['city'])は常にtrueを返します。どうすればこれを解決できますか?

ここにhtmlコードがあります:

<form id="city_form">

  <select id="city" name="city">
    <option selected="selected" disabled="disabled">Select a city...</option>
    <option value=1 name="city1">City 1</option>
    <option value=2 name="city2">City 2</option>
    <option value=3 name="city3">City 3</option>
    <option value=4 name="city4">City 4</option>
  </select>

  <input type="submit" value="Submit form" id="submit_button" />

</form>
<div id="show_city"></div>

これがjqueryコードです:

$('#submit_button').click(function(e) {
  e.preventDefault();
  var data = $('#city_form').serialize();
  $.post(
         "fetch_city.php",
          data,
          function (response) {
             $('#show_city').html(response);
          }
        );
});

これがfetch_city.phpです:

if (isset($_POST['city']) && !empty($_POST['city'])) {

  $city_id = $_POST['city']);
  echo $city_id;

} else {
  echo "You did not select a city...!";
}
4

2 に答える 2

4

できません。意味のある番兵を与え、valueその値が出た場合はコントロールを無視します。

<option selected="selected" disabled="disabled" value="">Select a city...</option>
于 2012-05-26T21:32:54.867 に答える
0

ここでの答えは、jqueryが最初のオプションで無効になっているものを無視することだと思います。これからselected="selected"とdisabled="disabled"の両方を削除してみてください。これで、空白の最初のエントリが表示されます。フォームが送信されると、issetはfalseを返す必要があります。

于 2012-05-26T21:38:31.453 に答える