2014-11-20 7 views
0

Я собираю простую форму php для автоматического заполнения данных в форме PHP. Я проверил другие примеры на этой странице Auto fill form input fields from database using AJAX, которые выглядят одинаково, но я не могу понять свою проблему. Я понимаю риск SQL инъекции на Msql запроса, но это просто формаAjax Auto populate php Form

мой текстовые поля и авто Заселите скрипт

<style> 
    form input { padding: 3px; } 
</style> 

<p><u><strong>Kindly enter the Trip ID to Generate a Budget.</u></strong></p> 

<form align="center"> 
    Ref No:<br /> 
    <input name="refno" type="text" class="ed" /><br /> 
    Distance:<br /> 
    <input name="distance" type="text" id="distance" class="ed" onkeypress="return isNumberKey(event)" /><br /> 
    Fuel Cost/Litre<br/> 
    <input name="fuelcostperl" type="text" id="fuelcostperl" class="ed" onkeypress="return isNumberKey(event)" /><br /> 
    <br><hr><table border=0 cellpadding=2> 
     <tr><td>Req No:</label></td><td><input type='text' name='req_id' id="req_id" size=5 onchange="updateBudget()"></td></tr> 
     <tr><td colspan=3>The following are details of the budget:</td></tr> 
     <tr><td>Initials:</td><td><input type='text' id='init' /></td></tr> 
     <tr><td>First Name:</td><td><input type='text' id='fname'/></td></tr> 
     <tr><td>Othernames:</td><td><input type='text' id='Othernames'/></td></tr> 
     <tr><td>Email Address:</td><td><input type='text' id='email'/></td></tr> 
     <td>Trip Date:</td><td><input type='text' id='tripdate'/></td></tr> 
     <tr><td>Drop Date:</td><td><input type='text' id='dropdate'/></td></tr> 
     <tr><td>Destination:</td><td><input type='text' id='destination'/></td></tr> 
     <tr><td>Number Of Persons:</td><td><input type='text' id='no_persons'/></td></tr> 
     <tr><td>Vote:</td><td><input type='text' id='vote'/></td></tr> 
     <tr><td>Trip Purpose:</td><td><input type='text' id='tripreason'/></td></tr> 
    </table> 
</form> 
<script> 
    var ajax = getHTTPObject(); 

    function getHTTPObject() 
    { 
     var xmlhttp; 
     if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } else if (window.ActiveXObject) { 
      // code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } else { 
      //alert("Your browser does not support XMLHTTP!"); 
     } 
     return xmlhttp; 
    } 

    function updateBudget() 
    { 
     if (ajax) 
     { 
      var reqValue = document.getElementById("req_id").value; 
      if (reqValue) 
      { 
       var url = "populatebudget.php"; 
       var param = "?req_id=" + escape(reqValue); 

       ajax.open("GET", url + param, true); 
       ajax.onreadystatechange = handleAjax; 
       ajax.send(null); 
      } 
     } 
    } 
    function handleAjax() 
    { 
     if (ajax.readyState == 4) 
     { 
      budgetarr = ajax.responseText.split(","); 

      var init = document.getElementById('init'); 
      var fname = document.getElementById('fname'); 
      var othernames = document.getElementById('othernames'); 
      var email = document.getElementById('email'); 
      var tripdate = document.getElementById('tripdate'); 
      var dropdate = document.getElementById('dropdate'); 
      var destination = document.getElementById('destination'); 
      var no_persons = document.getElementById('no_persons'); 
      var vote = document.getElementById('vote'); 
      var tripreason = document.getElementById('tripreason'); 

      init.value = budgetarr[0]; 
      fname.value = budgetarr[1]; 
      othernames.value = budgetarr[2]; 
      email.value = budgetarr[3]; 
      tripdate.value = budgetarr[4]; 
      dropdate.value = budgetarr[5]; 
      destination.value = budgetarr[6]; 
      no_persons.value = budgetarr[7]; 
      vote.value = budgetarr[8]; 
      tripreason.value = budgetarr[9]; 

     } 
    } 
</script> 

<tr align="center"> 

<a href="transmanager.php">Back to Main Page</a> 

</tr></div> 
</body> 
</html> 

мой PHP ссылку на базу данных

<?php 
//you'll have to replace your credentials here 
$mysqldatabase = "kuvs"; 
$mysqluser = "root"; 
$mysqlpassword = ""; 

//connect to db 
$DBCONN = mysql_connect("localhost", $mysqluser, $mysqlpassword); 
if (!$DBCONN) 
    die("Couldn't connect to MySQL Server."); 
//perform lookup 
$query = "SELECT init,fname,othernames,email,tripdate,dropdate,destination,no_persons,vote,tripreason FROM request WHERE req_id=" . mysql_real_escape_string($_GET['req_id']); 
$result = mysql_db_query($mysqldatabase, $query) or die(mysql_error()); 

//print out results 
$row = mysql_fetch_array($result); 
echo $row['init'] . "," . $row['fname'] . "," . $row['othernames'] . "," . $row['email'] . "," . $row['tripdate'] . "," . $row['dropdate'] . "," . $row['destination'] . "," . $row['no_persons'] . "," . $row['vote'] . "," . $row['tripreason']; 
?> 

Мой вопрос заключается в том, что я пытался заполнить все остальные поля, но показаны только первые два.

+0

Добавить 'console.log (budgetarr);' after' budgetarr = ajax.responseText.split (","); ', чтобы увидеть, какой ответ вы получаете, если ответ не правильно, чем проверить ваш php-код, иначе отлаживайте свой javascript-код. – madforstrength

ответ

0

Благодаря Venkat это было только запутались в верхнем регистре. Я изменил Othernames как document.getElementById('othernames'); Это сработало. Есть ли программа или плагины, которые могут ее исправить? в противном случае спасибо вам всем, у кого были мнения

0

Вместо mysql_fetch_array использование mysql_fetch_assoc.

Пожалуйста, проверьте document.getElementById('othernames'); Идентификатор, указанный как неверный, в html-коде был указан как Othernames. Javascript чувствителен к регистру

+1

mysql_fetch_array дает как на основе индекса, так и на основе полей таблицы – madforstrength

0

попробовать это

while($row = mysql_fetch_assoc($result)){ 
echo $row['init'].",".$row['fname'].",".$row['othernames'].",".$row['email'].",".$row['tripdate'].",".$row['dropdate'].",".$row['destination'].",".$row['no_persons'].",".$row['vote'].",".$row['tripreason']; 
}