0

hello, I have some problem with this code.

Jacasript used in AJAX:

var xmlHttp; 
function showUser(str) { 
xmlHttp=GetXmlHttpObject(); 
if (xmlHttp==null) { 
alert ("Browser does not support HTTP Request"); return; 
} 
var url="getuser.php"; 
url=url+"?q="+str; 
url=url+"&sid="+Math.random(); 
xmlHttp.onreadystatechange=stateChanged; 
xmlHttp.open("GET",url,true); xmlHttp.send(null); } 

function stateChanged() { 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {     document.getElementById("txtHint").innerHTML=xmlHttp.responseText; } } 

function GetXmlHttpObject() { 
var xmlHttp=null; 
try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } 
catch (e) { //Internet Explorer 
try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } 
catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } 
return xmlHttp; }

The PHP page:

<?php $q=$_GET["q"]; 
$con = mysql_connect('localhost', 'peter', 'abc123'); 
if (!$con) { die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("ajax_demo", $con); 

$sql="SELECT * FROM user WHERE id = '".$q."'"; 
$result = mysql_query($sql); 


    while($row = mysql_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td><input type = 'text' name='username' id='username' size ='35' value=". $row['username'] ." ></td>";   
    echo "</tr>"; } echo "</table>"; 

    mysql_close($con); ?>

I had tried this code but I want to display the result in a text box. The user was found and it displayed in the text box. But only one word appeared in the text box. I don't want to separate the user name to first name and last name. So, the user name is in one field only.
So, for example the user name is 'hulk hogan'. Only hulk displayed in the text box. When I just displayed it without the text box, the name displayed all word, 'hulk hogan'. So, what should I do so the name in text box will display all word. Please help me.

3
Contributors
7
Replies
73
Views
3 Years
Discussion Span
Last Post by nurul_1
0

Maybe there is something you have configured incorrectly with the element that has the ID = "txtHint"? You are not showing this element in your code. could it be a size property that you added or something else preventing all of the text from showing?

0

I already put the txtHint in HTML page. I just didn't show it here because I assumed all already know the HTML part.

Here the code for HTMl page:

<html> 
<head> 
<script src="selectuser.js"></script> 
</head> 
<body> <form> Select a User: 
<select name="users" onchange="showUser(this.value)"> 
<option value="1">Hulk Hogan</option> 
<option value="2">Iron Man</option> 
<option value="3">Shrek</option>  
</select> 
</form> 

<p> <div id="txtHint"><b>User info will be listed here.</b></div> </p> 
</body> 
</html

I don't know. I already tried change the size and others code. But, still no solution.

0

Do you want to update a record and getting values using ajax? or only showing?

Edited by saqib_604: was mistakenly saved

0

I want to get the values and update the record so thats why I want the user to appear in the text box. I'm sorry, I paste the wrong code. Here the real code and its working.

HTML page:

<html>
<body>
<form action="serah.php" method="post">
 <p>
 <tr>
 <td><strong>Staff ID </strong></td>
 <td><strong>:</strong></td>
 <td><label><strong><input type = "text" name="noPekerjaSerah"    id="noPekerjaSerah" size ="35" onBlur = "this.value=this.value.toUpperCase()" onChange="showUser2(this.value,noPekerjaSerah.value)" required/</strong></label></td>
 </tr>
 </p>


   <p>
   <tr>
   <td><strong>Staff Name</strong></td>
   <td><strong>:</strong></td>
   <td><label><div id="txtHint2"><b></b></div>
   </label></td>
   </tr>
   </p>
</form>
</body>
</html>

Here Javasript code:

<script>
function showUser2(str)
{
if (str=="")
  {
  document.getElementById("ID").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {


    document.getElementById("txtHint2").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser4.php?q="+str,true);
xmlhttp.send();
}
</script>

PHP code / getuser4.php:

<?php


include("dbase.php");

 $q = $_GET['q']; 
 $query = "SELECT namaStaff FROM user WHERE ID = '".$q."'";

$result = mysql_query($query,$conn);



while($row = mysql_fetch_array($result)){

  echo "<tr>";
  echo "<td><input type = 'text' name='serahKepada' id='serahKepada' size ='35' value=". $row['namaStaff'] ." ></td>"; //only first word of user name appear in the text box. I wat to get this value and record it in database.
  echo "<td>". $row['namaStaff'] ."</td>";// Full word appear if not using textbox.
  echo "</tr>";
  }



mysql_close($conn);
?>
0
while($row = mysql_fetch_array($result)){

  echo "<tr>";
  echo "<td><input type = 'text' name='serahKepada' id='serahKepada' size ='35' value='". $row['namaStaff'] ."' ></td>"; //only first word of user name appear in the text box. I wat to get this value and record it in database.
  echo "<td>". $row['namaStaff'] ."</td>";// Full word appear if not using textbox.
  echo "</tr>";
}

focus on "$row['namaStaff']", here you have to include single quotes for value attribute of html as value=''. So the line becomes as in your case:

value='". $row['namaStaff'] ."'

Hope its the answer of question. :)

0

ohh,its work. Thank you for your answer. I didn't expect that's the problem. I took 2 weeks just want to solve this problem. Thank you again. You saved me. :)

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.