<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', '');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("world", $con);
$sql="SELECT * FROM country WHERE Code = '".$q."'";
$result = mysql_query($sql);
echo "<table border='1'>
<tr>
<th>Code</th>
<th>Name</th>
<th>Continent</th>
<th>GNP</th>
<th>GNPOld</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Code'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Continent'] . "</td>";
echo "<td>" . $row['GNP'] . "</td>";
echo "<td>" . $row['GNPOld'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
위는 PHP이며 아래는 동일한 HTML이며 mysql의 샘플 세계 데이터베이스에서 작업 중입니다.AJAX-PHP-MySQL 생성 테이블에 대한 동적 Div 태그 생성
<html>
<head>
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","moviedetail.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<table width="100%" border="0">
<tr>
<td>
<select name="Country" onChange="showUser(this.value)">
<option>Select Name</option>
<?php
mysql_connect('localhost','root','')
or die ("could not connect DB");
mysql_select_db('world')
or die ("could not connect database");
$query="select code, name from country order by name asc"
or die ("query failed");
$result=mysql_query($query);
while(list($code, $name)=mysql_fetch_row($result)) {
echo "<option value=\"".$code."\">".$name."</option>";
echo "<div id=\"".$code."\">".$name."</div>";
}
?>
</select>
</td>
<td>
<div id="txtHint"><b>Country info will be listed here.</b></div>
</td>
</tr>
</table>
</body>
</html>
이것은 양식과 표시 테이블에서 같은 이름을 취합니다. 코드 내 다른 설정은 다음과 같습니다 : - HTML의
<?php
for (;$i<$nrows;)
{
#add 1 so that numbers don't start with 0
echo"<tr>\n";
for ($j=0;$j<10&&$i<=$nrows;$j++)
{
$n = $i;
$i=$i + 1;
$k=$n%30;
$row = mysqli_fetch_assoc($result);
extract($row);
echo "<td>
<table>
<tr>
<td>$n</td>\n
</tr>\n
<tr>
<td>$Name</td>\n
</tr>\n
<tr>\n
<td>$Continent</td>\n
</tr>\n
<tr>\n
<td>$Region</td>\n
</tr>\n
<tr>\n
<td>$SurfaceArea</td>\n
</tr>\n
<tr>\n
<td>$IndepYear</td>\n
</tr>\n
<tr>\n
<td>$GNP</td>\n
</tr>\n
<tr>\n
<td>$k</td>\n
</tr>\n
</table>\n
</td>";
if ($k==0)break 2;
}
echo"</tr>\n";
}
?>
및 관련 부분은 내가 디자인과 몇 가지 문제가
<td><table border="1">
<tr>
<td>
<?php
include ("/connections/query.php");
$nrows = mysqli_num_rows($result);
/* Display results in a table */
echo "<table>\n
<tr>\n";
$i=1;
include ("/function/movietable.php");
echo "</tr>\n
</table>\n";
?>
</td>
<td> </td>
</tr>
</table></td>
입니다. 첫 번째 두 세트의 코드와 마찬가지로 마우스 오버 효과를 사용하려면 위의 코드에서 비어있는 열의 마지막 두 세트 코드에 의해 생성 된 각 국가 테이블 (전체)에 대한 자세한 정보가 필요합니다. 페이지 이동에도 불구하고 항상 동일한 위치에 표시되도록하고 싶습니다.
그리고 더 간단한 문제가 하나 있습니다. 위에서 볼 수 있듯이 나는 30 개의 결과에서 질의를 중단했다. 같은 페이지에 더 많은 결과를 표시하려면 하단에 show-more 버튼을 추가하고 싶습니다.
저는 초보자입니다. 코드에서 실수를 지적하면 도움이 될 것입니다. 지금까지는 localhost에서 완벽하게 작동합니다. 뿐만 아니라 http://justinvincent.com/ezsql
그리고 JQuery와 :
당신이 당신의 시스템에 jQuery 라이브러리를 통합의 가능성이 있을까? AJAX 쿼리를 수행하고 DOM을 수정하기위한 샘플 코드를 제공하는 것이 훨씬 쉽습니다. –
나는 모든 종류의 제안에 개방적이다. 모든 프로토콜이나 언어에 대해 특별한 친화력을 갖지는 않습니다. 모든 것이 여전히 그리스어입니다. 나는 최종 결과에만 관심이있다. 제안 및 코드를 기다리고 있습니다. – JHA