Как получить VALUE из 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 Solutions collect form web for “Как получить VALUE из FORM без его отправки?”
Если вы не хотите отправлять свою форму, вы можете получить элемент, используя 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>
<script type = 'text / javascript'><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>
Если вы не хотите отправлять форму, используйте 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()); });
Нет способа получить данные из формы перед отправкой в PHP! Это связано с тем, что перед отправкой формы скрипт PHP просто не вызывается.
Если вы хотите выполнить некоторую проверку перед отправкой данных, вы должны использовать javascript, который запускается в клиентском браузере. Посмотрите на библиотеку jQuery, которая делает это очень просто: http://docs.jquery.com/Plugins/Validation/validate
Если вы хотите использовать PHP только тогда, вам нужно будет разделить форму на две страницы.
Вы должны использовать 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 });
Я думаю, если вы не хотите обновлять page
, когда пользователь выбирает значение из раскрывающегося списка, вы можете использовать ajax
. Для этой цели используется AJAX
. если вы google, то вы найдете много учебников, связанных с AJAX
.