如何在不提交的情况下从FORM获取VALUE?

时间:2013-03-28 08:10:15

标签: php html

我希望从Form中获取价值而不提交它,因为客户必须选择正确类型的房屋模型以获得适合所选房屋模型的正确形式,而无需提交,只需选择房屋模型及其示例在此之后继续其余形式。

到目前为止,我已尝试过这个:

<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\">";
}
}
?>        

5 个答案:

答案 0 :(得分:2)

如果您不想提交表单,可以使用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>

答案 1 :(得分: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());
 });

答案 2 :(得分:0)

在使用PHP提交之前无法从表单获取数据!这是因为在提交表单之前,不会调用PHP脚本。

如果要在发送数据之前进行一些验证,则必须使用在客户端浏览器上运行的javascript。看看jQuery库,它使这很容易:http://docs.jquery.com/Plugins/Validation/validate

如果您只想使用PHP,则需要将表单分成两页。

答案 3 :(得分: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
    });

答案 4 :(得分:0)

我认为,如果您不希望在用户从下拉列表中选择值时刷新page,则可以使用ajaxAJAX用于此目的。如果你谷歌,那么你会发现很多与AJAX相关的教程。