2013-11-19 3 views
1

Я настраиваю страницу, в которой первым шагом является выбор пользователем из выпадающего списка. Я не хочу, чтобы пользователь сначала сделал выбор, а затем нажал кнопку отправки, так как в этот момент они ничего не сделают. Вот фрагмент кода из части элемента FORM на странице.выполняют команду POST, когда пользователь выбирает параметр из раскрывающегося списка

<form action="index.php" target="_self" method="post"> 
<label style:padding:1px margin:0px font-size:12px>Last Name</label> 
<select name="UniqueLastNames" onchange="checkField(this.value)"> 
(the option values are wrapped in php and get their values from a database) 

Я знаю, что обычно последняя часть этого будет использовать входной элемент с типом = представить, но я просто хочу действие POST запустить, как только пользователь делает выбор из списка. Java Script 'checkFidld() возвращает выбранное имя и в настоящее время помещает его в ярлык в моей форме, что только доказывает, что выпадающий файл работает.

Я также предпочел бы использовать POST в отличие от GET, чтобы пользователь не мог изменить URL-адрес, и да, на самом деле пользователь остается на одной странице, а оставшаяся часть данных для этой страницы будет заполнена, когда обновляется страница.

+0

http://api.jquery.com/submit/ Хотя я бы предостерег от этого, так как пользователь может случайно щелкнуть то, чего он не намеревался. –

+1

Если обновление страницы в порядке, попробуйте отправить, когда на 'onchange'. Если вы не хотите обновлять страницу, используйте AJAX и привяжите функцию к 'onchange'. – Broxzier

ответ

0

Просто вызовите метод submit в вашей форме после того, как вы вызываете функцию checkField. Например:

HTML

<form action="index.php" target="_self" method="post" id="your-form"> 
    <select name="UniqueLastNames" onchange="checkField(this.value)"> 
     ... 
    </select> 
</form> 

JavaScript

function checkField(val) { 
    // do something with your val 
    document.getElementById('your-form').submit() 
} 

Пожалуйста, обратите внимание, что я добавил идентификатор элемента формы, так что я могу выбрать его легко в JavaScript.

+0

Это почти похоже на то, что я ищу. Я проверил его прошлой ночью, и это, похоже, не вызвало обновление страницы. Я считаю, что в некоторых частях кода php есть некоторые проблемы. Я буду тестировать сегодня, создав более простую настройку и дам вам знать, как это получится. – mackeyka

0

Насколько я понял ваш вопрос и комментарий, вы хотите, чтобы ваш пользователь выбирал значение из раскрывающегося списка, а страница с разными полями должна быть соответствующим образом обновлена.

// PHP code 
$choice = $_GET['userchoice']; 
// Get Data from Database and update fields in Page 


// In javascript, Use this code. 
<script type="text/javascript"> 
    function checkField(val) 
    { 
     window.location = "yourpage.html?userchoice="val; 
    } 
</script> 

Опять же, я рекомендую вам использовать Ajax, который будет лучше влиять на ваших клиентов.

+0

Информация на странице с раскрывающимся списком должна обновляться по выбору, сделанному в раскрывающемся списке. И я хочу, чтобы эта страница отправлялась, когда пользователь делает выбор, вместо того, чтобы делать выбор, а затем нажмите кнопку отправки. Я все еще работаю над решением Guilherme, пытаясь понять, что находится в моем коде между