1

送信せずにフォームから値を取得したいと思います。クライアントは、選択した家のモデルに適合する適切なフォームを取得するために適切なタイプの家のモデルを選択する必要があるため、送信せずに家のモデルを選択するだけで、たとえばその後の残りのフォーム。

私はこれまでにこれを試しました:

<form method="GET" action="foo.php">
  <select name="house_model">
    <option value="">------</option>
    <option value="<?php echo $model1;?>">Model 1</option>
    <option value="<?php echo $model2;?>">Model 2</option>
    <option value="<?php echo $model3;?>">Model 3</option>
  </select>
</form>

<?php    
$a = $_GET["housemodel"];

if($a<>'')
{
if($a == $model1)
{
   echo "<input type=\"text\" name=\"a\" value=\"something model1\">";
}
else if($a == $model2)
{
   echo "<input type=\"text\" name=\"b\" value=\"something model2\">";
} 
else if($a == $model3)
{
   echo "<input type=\"text\" name=\"c\" value=\"something model3\">";
}
}
?>        
4

5 に答える 5

1

フォームを送信したくない場合は、JavaScript を使用して要素を取得します。または、jquery を使用して値にアクセスすることもできます。必ず使用して入れid = "something"て取得してください$('#something').val();

JavaScript を使用する場合は、

<select name="house_model" id="model">
    <option value="">------</option>
    <option value="<?php echo $model1;?>">Model 1</option>
    <option value="<?php echo $model2;?>">Model 2</option>
    <option value="<?php echo $model3;?>">Model 3</option>
</select>

<script type="text/javascript">
    var model= document.getElementById('model');
    alert("You entered: " + model);
</script>

AJAXコードはこちら

 $("#model").live("change", function () {
     alert("You choose " + $('#model').val());
 });
于 2013-03-28T08:13:35.077 に答える
1

pageユーザーがドロップダウンリストから値を選択したときに更新したくない場合は、を使用できますajaxAJAXこの目的で使用されます。グーグルで検索すると、に関連するチュートリアルがたくさん見つかりますAJAX

于 2013-03-28T08:17:32.753 に答える
1

フォームを送信したくない場合は、AJAX/jQuery を使用して要素を取得できます。

<form method="GET" action="foo.php" onChange="getHouseModel">
  <select name="house_model" id="house_model">
    <option value="">------</option>
    <option value="<?php echo $model1;?>">Model 1</option>
    <option value="<?php echo $model2;?>">Model 2</option>
    <option value="<?php echo $model3;?>">Model 3</option>
  </select>
</form>

<script type='text/javascript'>
   function getHouseModel(){
      var model=$('#house_model').val();
      alert(model);
}
</script>

または、このようにjqueryを書くことができます。したがって、タグで関数を呼び出す必要はありません

<script type="text/javascript">
    $('#house_model').select(function() {
       var model=$('#house_model').val();
      alert(model);
     });
</script>
于 2013-03-28T08:18:43.940 に答える
0

PHP で送信する前に、フォームからデータを取得する方法はありません。これは、フォームを送信する前に PHP スクリプトが呼び出されないためです。

データを送信する前に何らかの検証を行いたい場合は、クライアント ブラウザで実行される JavaScript を使用する必要があります。これを非常に簡単にする jQuery ライブラリをご覧ください: http://docs.jquery.com/Plugins/Validation/validate

PHP のみを使用する場合は、フォームを 2 つのページに分割する必要があります。

于 2013-03-28T08:15:18.147 に答える
0

これを実現するには ajax を使用する必要があります。

<form method="GET" action="foo.php">
  <select name="house_model" id="house_model">
    <option value="">------</option>
    <option value="<?php echo $model1;?>">Model 1</option>
    <option value="<?php echo $model2;?>">Model 2</option>
    <option value="<?php echo $model3;?>">Model 3</option>
  </select>
</form>

 $("#house_model").live("change", function () {
   //Write the ajax and post the value to server side
    });
于 2013-03-28T08:16:01.400 に答える