2016-08-14 4 views
0

Я пытаюсь прочитать выбранную опцию (месяц) из базы данных mysql через tabela.php (тогда php выбирает только пользователей и их часы для выбранного месяца). В этот момент, когда я выбираю вариант, я получаю результаты, но он отображается на новом сайте, который является tabela.php. Как я могу сделать ajax или скрипт, чтобы показать результаты на моем сайте HTML.как вызвать функцию javascript из php

Например: таблица на html сначала пуста, затем пользователь выбирает Januar и ниже этой таблицы выбора должен автозаполнение с правильными результатами. HTML:

<form action="tabela.php" method="post"> 
Mesec: <select name="meseci", onchange="this.form.submit()"> 
<option value="o"> </option> 
<option value="1">Januar</option> 
<option value="2">Februar</option> 
</select><br><BR> 
</form> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript">// <![CDATA[ 
$(document).ready(function() { 
$.ajaxSetup({ cache: false }); 
setInterval(function() { 
$('#results').load('tabela.php'); 
}, 3000); // the "3000" here refers to the time to refresh the div. it is in milliseconds. 
}); 

PHP:

$conn = new mysqli($servername, $username, $password, $dbname); 
$x = (isset($_POST['meseci']) ? $_POST['meseci'] : null); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$result = mysqli_query($conn, "SELECT ime, stevilo_ur FROM smart_ure WHERE mesec = '$x ' "); 
echo "<table border='1'> 
<tr> 
<th>ime</th> 
<th>stevilo_ur</th> 
</tr>"; 
while ($db_v = mysqli_fetch_assoc($result)) { 

echo "<tr>"; 
echo "<td>" . $db_v['ime'] ."</td>"; 
echo "<td>" . $db_v['stevilo_ur'] ."</td>"; 
echo"</tr>"; 
} 
echo "</table>"; 

mysqli_close($conn); 

if (isset ($_GET['update'])) 
{ 
echo $tbl; 
die(); 
} 

Редакцией:

<form method="post" id="test_form"> 
Mesec: <select id="meseci"> 
<option value="o"> </option> 
<option value="1">Januar</option> 
<option value="2">Februar</option> 
</select><br><BR> 
</form> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$.ajaxSetup({ cache: false }); 
$(document).on('change','select[#meseci]',function(){ 
$post('tabela.php',$('#test_form').serialize()).done(function(results){ 
$('#results').html(results); 
}); 
}); 
></script> 
<div id="results"</div> 
+0

вызов PHP от JS логика .. Напротив, не –

ответ

2

Рассмотрим у вас есть div в вашей текущей странице с id=result. Теперь в вашем файле сценария вы можете использовать onChange() в теге select, чтобы получить данные с помощью ajax. JS скрипт:

$(document).on('change','select[name="meseci"]',function(){ 
    $.post('tabela.php',$('#test_form').serialize()).done(function(result){ 
     $('#result').html(result); 
    }); 
}); 

Добавить идентификатор в форму, в сценарии выше я использовал id=test_form.

<form action="tabela.php" method="post" id="test_form"> 

Обновление вашей формы тег:

<form method="post" id="test_form"> 

Кроме того, удалить onChange из вашего выбора тега.

<select name="meseci"> 
+0

я продолжаю получать выброшены на моем tabela.php сайте, результаты не отображаются на моем HTML. –

+0

удалить тег атрибута действия из вашей формы – jaysingkar

+0

@Jan проверить обновление – jaysingkar

0

С помощью @jaysingkar мы получили его для работы. Ниже ответ:

<form method="post" id="test_form"> 
Mesec: <select id="meseci" name="meseci"> 
<option value="o"> </option> 
<option value="1">Januar</option> 
<option value="2">Februar</option> 
</select><br><BR> 
</form> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$.ajaxSetup({ cache: false }); 
}); 
$(document).on('change','#meseci',function(){ 
$.post('tabela.php',$('#test_form').serialize()).done(function(result){ 
$('#result').html(result); 
}); 
}); 
</script> 
<div id="result"</div> 
Смежные вопросы