2013-11-21 3 views
0

Я хочу обновить таблицу из основного файла веб-страницы с помощью функции ajax. Когда поле выбора изменит свое значение, необходимо выполнить функцию dayChanged(). Эта функция находится внутри файла «ajax.js». Проблема в том, что когда я выбираю другой вариант избранного, ничего не происходит. Я включаю файл вроде: <script src="ajax.js></script>. Я ожидаю отправить значение поля выбора в запрос MySQL (этот запрос находится внутри «config.php»), а затем обновить таблицу основного файла. Вот основные сведения:Не удается обновить таблицу php с помощью ajax

<html> 
<head> 
<style type="text/css"> 
body { 
    background-color: #9C3; 
} 
p {color:black;} 
.table_test { 
    font-family: Constantia, Lucida Bright, DejaVu Serif, Georgia, serif; 
} 
</style> 
<script src="ajax.js"></script> 
</head> 
<body><div align='center'> 
<div class="table_test"> 
    <table border='1' cellpadding='0' cellspacing='0' width='600' bgcolor='#F6F6F6' bordercolor='#FFFFFF'> 
    <tr> 
     <td width='150' style='font-weight: bold'></td> 
     <td width='150' style='font-weight: bold'>Festa</td> 
     <td width='150' style='font-weight: bold'>Preu</td> 
     <td width='150' style='font-weight: bold'>Entrada</td> 
     <td width='150' style='font-weight: bold'>Final</td> 
     <td width='150' style='font-weight: bold'>Estil</td> 
     <td width='150' style='font-weight: bold'>Llista</td> 
    </tr> 

<form name="form1" method="post"> 
<div id="table_var"> 
<?php 
    include ('functions.php'); 
    $dw = date("w"); 
    display_table_by_day($dw); 
?> 
    </table>  
</div> 
<p>Veure un altre dia de la setmana: 
    <select name="select_day" id="day_select" onChange="dayChanged()"> 
    <option value="1">Dilluns</option> 
    <option value="2">Dimarts</option> 
    <option value="0">Diumenge</option> 
    </select> 
</p> 
</form> 
</body> 
</html> 

Функция display_table_by_day ($ dw) работает правильно. ajax.js файл:

function dayChanged() 
{ 
var buscaAjax; 
if(window.XMLHttpRequest) 
{ 
    buscaAjax = new XMLHttpRequest(); 
}else{ 
    buscaAjax = new ActiveXOject("Microsoft.XMLHTTP"); 
    } 
    buscaAjax.onreadystatechange = function(){ 
     if(buscaAjax.readyState==4 && buscaAjax.status==200){ 
      document.getElementById('table_var').innerHTML = buscaAjax.responseText; 
      } 
     } 
     var dato = document.form1.select_day.value; 
     buscaAjax.open("GET","config.php?variable="+dato,true); 
     buscaAjax.send(); 
} 

Наконец, файл config.php является:

<?php 
error_reporting(E_ALL^E_NOTICE); 
include ('connection.php'); 
include ('functions.php'); 

$dw = $_GET['variable']; 
display_table_by_day($dw); 

?> 

Любая идея, почему не работает?

+0

ваша Аякса работает правильно? –

+0

Я не уверен в этом. Как я могу проверить это? –

+1

В mozilla вы используете firebug, заходите в консоль и смотрите, что возвращает ваш ajax –

ответ

0

Вы обращаетесь к select по имени:

var dato = document.form1.select_day.value; 

изменить его на id в select, как это:

var dato = document.form1.day_select.value; 
+0

Спасибо, но все равно ничего не происходит. –

+0

Попробуйте использовать значение document.getElementById ('day_select'). И убедитесь, что оно возвращает некоторое значение. – SASM

+0

Это еще не все. Как я могу узнать, возвращает ли он значение? Я не знаю, как отлаживать эти lenguage (я новичок в нем). Спасибо. –

Смежные вопросы