2012-03-07 5 views
3

Как говорится, мне нужна помощь с onchange. У меня есть тег select, и мне нужно сделать другой запрос mysql, когда я выбираю что-то из списка выбора. Пример:onchange select do different mysql query

<select name="list"> 
<option>cars</option> 
<option>busses</option> 
<option>trucks</option> 
</select> 

, а затем, когда я выбираю cars это сделать это

$query="select * from table where type='cars'"; 

и если я выбираю trucks это сделать

$query="select * from table where type='trucks'"; 

и так далее ...
тогда мне нужно для отображения результата в div под списком пример

<select name="list"> 
<option>cars</option> 
<option>busses</option> 
<option>trucks</option> 
</select> 
<div> this is where I need to display results from query</div> 

Пожалуйста, помогите !!!

+0

Вы выполняете запрос на той же странице – mgraph

+0

Помогли мы или нет? пожалуйста, уточните нас. –

ответ

6

Если вы хотите изменить результат с помощью AJAX:

HTML:

<select id="list" name="list"> 

    <option>cars</option> 

    <option>busses</option> 

    <option>trucks</option> 
    </select> 

в JS Файл:

$(document).ready(function() { 
    $('#list').change(function() { 
var selected=$(this).val(); 
    $.get("change_query.php?selected="+selected, function(data){ 
     $('.result').html(data); 

    }); 
    }); 
}); 

и вы должны создать change_query.php файл и ваш запрос и код в нем и вернуть в него результат

$type = $_POST["selected"]; 

$query="select * from table where type='".$type."'"; 

результат печати здесь ....;

  • Скажите мне, если вам нужна помощь, я только что привел вас в Jquery не весь код
+0

Я забыл сказать, что мне нужно отобразить этот результат в div на той же странице. Как это сделать? . –

+0

в JS Файл: $ (документ) .ready (функция() { $ ('# список') изменение (функция() { вар выбран = $ (это) .val(); $.get ("change_query.php? selected =" + selected, function (data) { $ ('div.result'). html (данные); }); }); }); и в файле change_query.php извлеките результат и распечатайте его. –

+0

@EmadSamirZaki вы можете посмотреть (http://stackoverflow.com/questions/29471491/onchange-function-change-the-displayed-data-from-a-table) – DogFace

2

Вы должны добавить код SELECT к форме с атрибутом method, установленным в post, , а также кнопку отправки, конечно. Затем php получит значение этих INPUTS и сделает все, что вы хотите.

$term = $_POST['list']; 

/* 
In order to prevent unwanted queries or injection add an array with those terms and 
check if the posted value is in this array: 

*/ 
    $terms = array("cars" , "trucks"); 
    if(!array_key_exists($term , $terms)) 
    die(); //bad bad bad boy. 

    $query = "select * from table where type='$term'"; 
+0

'mysql_escape_string' Эта функция была DEPRECATED с PHP 5.3.0. Опираясь на эту функцию, очень не рекомендуется. –

+0

и 'mysql_real_escape_string' также? –

+0

Нет, но стоит отметить, что MySQL-соединение требуется перед использованием mysql_real_escape_string(). –

-1

вы могли бы использовать

onchange="this.form.submit();" 

, а также.