2013-07-05 6 views
-1

У меня есть один раскрывающийся список, в котором есть данные для «предметов», загружаемых из базы данных. когда я нажал на один вопрос, что он должен делать, это связанное с загрузкой значение «subject_id» внутри текстового поля, которое находится чуть ниже раскрывающегося списка. Я не знаю, как принести значение из getbook.php и показать в тексте ввода book_ID.Загрузка данных из базы данных с помощью php и чистого ajax в текстовое поле

show_bookid(str) { 
    var xmlhttp; 
    if (str.length == 0) { 
     document.getElementById("bookid").innerHTML = ""; 
     return; 
    } 
    if (window.XMLHttpRequest) { 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     strong text 
     xmlhttp = new ActiveXOjbject("Microsoft.XMLHttpRequest"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("bookid").innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET", "getbook.php?q=" + str, true); 
    xmlhttp.send(); 
} 

getbook.php

<?php 
<?php 
$b = $_GET['q']; 
include('includes/security.php'); 
include('includes/dbconnect.php'); 
$database = new MySQLDatabase(); 

$sql = "select * from tbl_bkcat where book_id='" . $b . "'"; 
$result = mysql_query($sql); 
?> 
?> 

ниже Файл, где мне нужно, чтобы приносить пользу

<form name="bookadd" action="" class="jNice" method="post"> 
    <p> 
     <label>Subject</label> 
     <select name="subject" onChange="show_bookid(this.value);"> 
      <?php while($sel_rows=mysql_fetch_array($subresult)) { ?> 
      <option value="<?php echo $sel_rows['book_id'];?>"> 
       <?php echo $sel_rows[ 'subject']?> 
      </option> 
      <?php } ?> 
     </select> 
    </p> 
    <p> 
     <label>Book_Id</label> 
     <input type="text" id="bookid" class="text-small" />//where i need to load subject id</p> 
+1

Откуда взялась тема subject_id? Я вижу только код book_id, указанный в коде. Для subject_id вам нужно снова запросить запрос? Пожалуйста, дайте более подробную информацию. – ashoka

+2

Не вызывает ли

+0

@FranciscoPresencia Спасибо за ваше поспешное брода –

ответ

1

Ошибка была сделана в АЯКС части document.getElementById ("BookID"). InnerHTML и должен быть заменен document.getElementById(). Значение, так как я пришлось поместить данные в Html Element, что значение cotain, т.е. Textbox (в текстовом поле содержит атрибут value).

InnerHTML используется для манипулирования HTML элементы, которые не содержат значение, ** ДИВ, h1, ** и т.д. Подробности см ссылку ниже.

http://www.verious.com/qa/what-39-s-the-difference-between-document-get-element-by-id-quot-test-quot-value-and-document-get-element-by-id-quot-tes/

Аякса код

function show_bookid(str) 
{ 
    var xmlhttp; 
    if(str.length==0) 
    { 
     document.getElementById("bookid").value=""; 
     return; 
    } 
    if(window.XMLHttpRequest) 
    { 
     xmlhttp= new XMLHttpRequest(); 
    } 
    else 
    { 
     xmlhttp=new ActiveXOjbject("Microsoft.XMLHttpRequest"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("bookid").value=xmlhttp.responseText; 
     } 
    } 
     xmlhttp.open("GET","getbook.php?q="+str,true); 
     xmlhttp.send(); 

} 

getbook.php

<?php 
$b=$_GET['q']; 
include('includes/security.php'); 
include('includes/dbconnect.php'); 
$database=new MySQLDatabase(); 

$sql="select * from tbl_bkcat where book_id='".$b."'"; 
$result=mysql_query($sql); 
$row=mysql_fetch_array($result); 
echo $row['Book_id']; 
?> 

addbook.php

  <form name="bookadd" action="" class="jNice" method="post"> 
      <fieldset> 

       <p><label>Subject</label> 
       <select name="subject" onChange="show_bookid(this.value);"> 

       <?php 

        while($sel_rows=mysql_fetch_array($subresult)) 
        { 
       ?> 
        <option value="<?php echo $sel_rows['book_id'];?>"> 
        <?php echo $sel_rows['subject']?> 
        </option> 
        <?php 
         } 
        ?> 
       </select> 
       </p> 

       <p> 
       <label >Book ID</label>     
       <input type="text" id="bookid" name="book"/> 
       </p> 
1

Ваш subject_id не отображается, потому что вы не напечатали свой book_id после загрузки результаты из базы данных в getbook.php

После этого $result=mysql_query($sql);

Написать echo $result['your_book_id_field_name'];

+0

вы не получаете данные базы данных с помощью ajax, вы получаете его с PHP – Onheiron

+0

@Onheiron спасибо! Я сделал хороший поиск по этой теме и получил хорошие знания. –

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