Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ajax ошибка в добавлении поля / 12 сообщений из 12, страница 1 из 1
20.06.2017, 19:40
    #39475045
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
не добавляет в базу поле из 3 селекта, помогите, пожалуйста, в чем ошибка?

index.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
<script src="ajax_framework.js" language="javascript"></script>
    
<script language="javascript" type="text/javascript">
function getXMLHTTP() {
        var xmlhttp=false;  
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e)    {       
            try{            
                xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){
                try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1){
                    xmlhttp=false;
                }
            }
        }
            
        return xmlhttp;
    }
    
    function getDirection(trainerId) {      
        
        var strURL="findState.php?trainer="+trainerId;
        var req = getXMLHTTP();
        
        if (req) {
            
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {                        
                        document.getElementById('statediv').innerHTML=req.responseText;
                        document.getElementById('citydiv').innerHTML='<select name="full_date">'+'<option>Выберите дату занятия</option>'+'</select>';                      
                    } else {
                        alert("Problem while using XMLHTTP:\n" + req.statusText);
                    }
                }               
            }           
            req.open("GET", strURL, true);
            req.send(null);
        }       
    }
    function getSchedule(trainerId,directionId) {       
        var strURL="/findCity.php?trainer="+trainerId+"&direction="+directionId;
        var req = getXMLHTTP();
        
        if (req) {
            
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {                        
                        document.getElementById('citydiv').innerHTML=req.responseText;                      
                    } else {
                        alert("Problem while using XMLHTTP:\n" + req.statusText);
                    }
                }               
            }           
            req.open("GET", strURL, true);
            req.send(null);
        }
                
    }
    
    </script>
 <script src="ajax_framework.js" language="javascript"></script>
 <div id="insert_response"></div>
<form action="javascript:insert()" method="post">
 
 
<center>
<table width="45%"  cellspacing="0" cellpadding="0">
  <tr>
    <td width="75">Ваш тренер</td>
     <td width="50">:</td>
    <td  width="150"><select name="trainer" onChange="getDirection(this.value)">
    <option value="">Выберите тренера</option>
    <?php while ($row=$result->fetch_array(MYSQLI_ASSOC)) { ?>
    <option value=<?php echo $row['id_trainer']?>><?php echo $row['trainer']?></option>
    <?php } ?>
    </select></td>
  </tr>
  <tr style="">
    <td>Направление</td>
    <td width="50">:</td>
    <td ><div id="statediv"><select name="direction" >
    <option>Выберите направление</option>
        </select></div></td>
  </tr>
 
 
 <tr style="">
    <td>Выберите дату проведения занятия</td>
    <td width="50">:</td>
    <td ><div id="citydiv" name="citydiv">
    <select name="full_date" id="full_date">
    <option>Дата</option>
        </select></div></td>
    
 
 
<tr style="">
    <td><label for="id_subscription">Номер вашего абонемента:</label><br/></td>
    <td width="50">:</td>
<td ><input type="text" name="id_subscription" id="id_subscription" size="30" value=""/><br/></td>
 
   
    
<tr style=""> <td> <td> <td>
<input type="submit" name="Submit" value="Insert"/></td></tr>
</table>
</center>
</form>
</head>
 
</html>







form.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<meta charset="utf-8">
 
<?php 
require 'dbConfig.php';
//require_once("header.php");
$id_subscription = trim($_REQUEST['id_subscription']);
$citydiv = trim($_REQUEST['full_date']);
 
 
 
$insert_sql = "INSERT INTO Attendance (`id_subscription`, `id_schedule`) VALUES (".$id_subscription.",".$citydiv.")";
$result=$con->query($insert_sql);
//var_dump($result);
 
if ($result == true)
{
echo "<p>Вы записались на занятие, если хотите записаться еще на одно занятие, то вернитесь на страницу назад</p>";}
else {
echo "<p>ошибка</p>";
}
die;
?>



ajax_framework.js

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
 
 
 
var nocache = 0;
 
function insert() {
 document.getElementById('insert_response').innerHTML = "Just a second..."
 var req = getXMLHTTP();
var id_subscription= encodeURI(document.getElementById('id_subscription').value);
var full_date = encodeURI(document.getElementById('full_date').value);
 
nocache = Math.random();
http.open('get', 'form.php?id_subscription='+id_subscription+'&full_date=' +full_date+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
 
function insertReply() {
if(http.readyState == 4){ 
var response = http.responseText;
document.getElementById('insert_response').innerHTML = 'Site added:'+response;
 }
 }
...
Рейтинг: 0 / 0
20.06.2017, 20:20
    #39475060
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
F12 нажимаешь... Вкладка "сеть"... Мм... отлаживаешь...
...
Рейтинг: 0 / 0
20.06.2017, 20:26
    #39475064
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Hett, если бы я не испробовала все свои способы и хоть один из них бы сработал, то не писала бы сюда, не?
...
Рейтинг: 0 / 0
20.06.2017, 20:30
    #39475066
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Какой то же результат ты получила. Ошибка может какая-то? Посмотри в инструментах разработка какой запрос отправляется, корректен ли он. Исключить все лишнее, можно будет сконцентрироваться на проблемном месте. А так вряд ли кому то захочется изучать всю эту портянку.
...
Рейтинг: 0 / 0
20.06.2017, 20:34
    #39475070
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Если citydiv не число, о там кавычки нужны. Лучше писать не "ошибка" в случае ошибки, а читать конкретно что там за ошибка и выводить ее. Все драйвера это умеют.
...
Рейтинг: 0 / 0
20.06.2017, 20:35
    #39475071
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Hett,

ошибка в строке
var full_date = encodeURI(document.getElementById('full_date').text); ф файле js
Uncaught TypeError: Cannot read property 'text' of null, но как исправить идей нет
...
Рейтинг: 0 / 0
20.06.2017, 20:38
    #39475075
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Hett,

без js все добавляется, с ним нет
...
Рейтинг: 0 / 0
20.06.2017, 20:55
    #39475084
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Поди скрипт выполняется раньше, чем появляется поле с указанным id? Не проще это на jquety , например, делать?
...
Рейтинг: 0 / 0
20.06.2017, 20:59
    #39475086
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Hett,

вообще задача стоит именно с ajax, проблема в том, что поле citydiv находится раньше в 2 функциях, и как потом прописать его в js
...
Рейтинг: 0 / 0
20.06.2017, 21:36
    #39475093
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Все скрипты вниз убрать.
В jquery есть куда более удобная обёртка для ajax
...
Рейтинг: 0 / 0
20.06.2017, 21:37
    #39475094
Kat1619
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
Hett,

можете помочь реализовать?
...
Рейтинг: 0 / 0
21.06.2017, 09:31
    #39475217
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax ошибка в добавлении поля
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ajax ошибка в добавлении поля / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]