Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработчик формы не видит подгружаемый блок формы...
 
 автор: lidil   (14.12.2009 в 01:14)   письмо автору
 
 

Здравствуйте! Помогите пожалуйста бъюсь долгое время и ни как. Форма должна заполняться посетителями и уже заполненная отправляется в БД. Так вот при загрузке сразу подгружаются марки а/м далее после выбора марки, модели. Все работает исправно но при отправке, обработчик add.php мне выдает "введите модель" хотя она выбрана.
вот часть формы:
<form method="post" name="" action="add.php" >
<script> 
function AjaxFunc () 

x = document.getElementById("select");//выбераем наш селект 
x_send = x.selectedIndex; //Теперь x_send это то значение которое выбрали 

//тут создаю обьект  
if(window.XMLHttpRequest){ 
                            ajax1 = new XMLHttpRequest(); 
                            } 
 else  
         if(window.ActiveXObject) 
            { 
                ajax1 = new ActiveXObject("Microsoft.XMLHTTP"); 
            }  
 else { 
    return; 
      }; 

ajax1.open("GET","ajax.php?select="+x_send, true);//делаю опен. Селект передаю через сылку 
ajax1.send(null);
ajax1.onreadystatechange = function()// тут обрабатываю то что пришло 
                        { 
                        if (ajax1.readyState == 4 && ajax1.status == 200)  
                                 { 
                        a = document.getElementById("data[2]"); 
                        a.innerHTML = ajax1.responseText;   
                                };        
                        }

}; 
                     
</script> 
<table align="center" cellpadding="20">
<tr>
<td >

                    <div class="box10" >марка</div>


                        

 

<select name="data[1]" size="1" onchange='AjaxFunc()' id="select">
<option make="0"></option>
<?php 
require_once ("config.php"); 
// тут должна быть функция mysql_pconnect  
 
 
$sql "SELECT * FROM make ";// выбераю все марки 
 
$sql_result mysql_query($sql); 
 
$sql_arr mysql_fetch_array($sql_result); 
do { 
          echo (
"<option value='".$sql_arr['id_make']."'>".$sql_arr['name'].
"</option>"); 



  } 
  while (
$sql_arr mysql_fetch_array($sql_result)) 
 
?> 

</select> 
</td>

  
  
<td> 



                    <div class="box10" >модель</div>


             <div  id="data[2]" ><select  disabled="disabled">
<option value="0">выбирите</option>
</select></div>

               
                                        
                        
                   
                    </td>
                    </td>.... 

и вот ajax.php
<?php


// тут также должна быть функция mysql_connect 
require_once ("config.php"); 
$sql "SELECT * FROM model WHERE id_make = ".$_GET['select'] ;
$sql_result mysql_query($sql); 
$sql_fetch_array mysql_fetch_array($sql_result); 
//формирую ответ  

echo ("<select name='data[2]' ");
         
do { 

echo (
"<option  value='".$sql_arr['id_model']."'>".$sql_fetch_array['name']."</option>"); 

 while (
$sql_fetch_array mysql_fetch_array($sql_result));
echo (
'</select>'); 

?>   

Помогите а.

  Ответить  
 
 автор: coloboc66   (14.12.2009 в 11:33)   письмо автору
 
   для: lidil   (14.12.2009 в 01:14)
 

Вставьте в функцию алерт и проверьте значение переменной:
function AjaxFunc ()
{
x = document.getElementById("select");//выбераем наш селект
x_send = x.selectedIndex; //Теперь x_send это то значение которое выбрали
alert (x_send);
...
}
Что показывает? То, что надо?

  Ответить  
 
 автор: lidil   (14.12.2009 в 23:36)   письмо автору
 
   для: coloboc66   (14.12.2009 в 11:33)
 

Показывает... но результат тот же. :( "введите модель"

  Ответить  
 
 автор: АЯ   (15.12.2009 в 01:07)   письмо автору
 
   для: lidil   (14.12.2009 в 23:36)
 

Замените method на GET и изучите строку браузера при сабмите формы.

А вообще глуповато иметь на одной странице <div id="data[2]"> и формировать на той же странице <select name="data[2]">

  Ответить  
 
 автор: lidil   (15.12.2009 в 01:49)   письмо автору
 
   для: АЯ   (15.12.2009 в 01:07)
 

Ничего нового. Только вот. Когда был method="post" add.php выдовал "Введите модель", хотя должно было еще и "назад" со ссылкай на форму, а когда method="get" только "назад" без указания ошибки. Если просто вставить данные в select все работает но вод при подгрузке ни как. Вот add
<?php

$id_vid 
strip_tags(stripslashes(substr($_POST['data']['0'],0,10)));
$id_make strip_tags(stripslashes(substr($_POST['data']['1'],0,10)));
$id_model strip_tags(stripslashes(substr($_POST['data']['2'],0,10)));
$id_kuz strip_tags(stripslashes(substr($_POST['data']['3'],0,10)));
$id_gaz strip_tags(stripslashes(substr($_POST['data']['4'],0,10)));
$id_kpp strip_tags(stripslashes(substr($_POST['data']['5'],0,10)));
$god strip_tags(stripslashes(substr($_POST['data']['6'],0,10)));
$km strip_tags(stripslashes(substr($_POST['data']['7'],0,10)));
$mesta strip_tags(stripslashes(substr($_POST['data']['8'],0,10)));
$preis strip_tags(stripslashes(substr($_POST['data']['9'],0,10)));
$d_sw strip_tags(substr($_POST['data']['24'],0,200));
$famely strip_tags(substr($_POST['data']['25'],0,20));
$nami strip_tags(substr($_POST['data']['26'],0,20));
$email strip_tags(stripslashes(substr($_POST['data']['27'],0,20)));
$password strip_tags(stripslashes(substr($_POST['data']['28'],0,20)));
$st1 strip_tags(substr($_POST['data']['29'],0,10));
$st2  strip_tags(substr($_POST['data']['30'],0,10));
$mob1  strip_tags(substr($_POST['data']['31'],0,10));
$mob2  strip_tags(substr($_POST['data']['32'],0,10));

if(
$_POST['add'] != '') {
    if(
$id_vid != '') {
        if(
$id_make !='') {
            if(
$id_model !='') {
                if(
$id_kuz != '') {
            if(
$id_gaz != '') {
            if(
$id_kpp != '') {
                if(
$god != '') {    
                if(
$km != '') {
                     if(
$mesta != '') {    
                         if(
$preis != '') {    
                        if(
$id_val != '') {                                                
                                               if(
$email != '') { 
                                                  if(
$password != '') {                                                     

//Подключаемся к БД.
require_once ("config.php");

$query "INSERT INTO bd VALUES (NULL,

'"
.$id_vid."',
'"
.$id_make."',
'"
.$id_model."',
'"
.$id_kuz."',
'"
.$id_gaz."',
'"
.$id_kpp."',
'"
.$god."',
'"
.$km."',
'"
.$mesta."',
'"
.$preis."',
'"
.$id_val."',
'"
.$d_sw."',
'"
.$famely."',
'"
.$nami."',
'"
.$email."',
'"
.$password."',
'"
.$st1."',
'"
.$st2."',
'"
.$mob1."',
'"
.$mob2."')";

if(
mysql_query($query)) { echo "Запись <br/><a href=\"index.php\">добавлена</a>";}

 else {echo 
"Ошибка записи";};
}
else {echo 
"Введите пароль";}
 }
 else {echo 
"Введите email";}
 }
 else {echo 
"Введите валюту";}
 }
 else {echo 
"Введите цену";}
 }
 else {echo 
"Введите количество мест";}
 }
else {echo 
"Введите километраж";}
 }
else {echo 
"Введите год";}
 }
else {echo 
"Введите кпп";}
 }
else {echo 
"Введите топливо";}
 }
else {echo 
"Введите кузов";}
 }
else {echo 
"Введите модель";}
 }
else {echo 
"Введите марку";}
 }
 else { echo 
"Введите вид"; }
 }

 else {echo 
"<a href=\"form.php\">назад</a>";  };

?>

  Ответить  
 
 автор: Crux   (15.12.2009 в 08:24)   письмо автору
 
   для: lidil   (14.12.2009 в 01:14)
 

могу предположить, что у Вас закрывающий тег </form> стоит до закрывающего тега </table>,
если это так, то перенесите его после и должно заработать.

  Ответить  
 
 автор: sim5   (15.12.2009 в 09:01)   письмо автору
 
   для: Crux   (15.12.2009 в 08:24)
 

Ерунда, куда бы вы не заткнули этот тег, форма будет отправлена.

  Ответить  
 
 автор: Crux   (18.12.2009 в 06:47)   письмо автору
 
   для: sim5   (15.12.2009 в 09:01)
 

форма то будет отправлена, но только те поля которые были изначально, а вот добавленные не будут входить в форму.

и это не ерунда, а так оно и есть!

  Ответить  
 
 автор: Crux   (18.12.2009 в 06:58)   письмо автору
 
   для: sim5   (15.12.2009 в 09:01)
 

похожая проблема:
http://softtime.ru/forum/read.php?id_forum=4&id_theme=51760

  Ответить  
 
 автор: Crux   (18.12.2009 в 07:01)   письмо автору
 
   для: Crux   (18.12.2009 в 06:58)
 

вот еще
http://softtime.ru/forum/read.php?id_forum=4&id_theme=40390

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования