チュートリアルから収集したインスタント検索プログラムがあり ます。コードのいくつかの行を変更しました。これがドキュメントです:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href="styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".search_button").click(function() {
// getting the value that user typed
var searchString = $("#search_box").val();
// forming the queryString
var data = 'search='+ searchString;
// if searchString is not empty
if(searchString) {
// ajax call
$.ajax({
type: "POST",
url: "instant_search.php",
data: data,
beforeSend: function(html) { // this happens before actual call
$(".results").html('');
//$("#uname").value('');
//$("#searchresults").show();
$(".word").html(searchString);
},
success: function(html){ // this happens after we get results
$(".results").show();
$(".results").append(html);
$('#uname').value(html);
//document.getElementById('uname').value(html);
//$("#uname").value(html);
}
});
}
return false;
});
});
</script>
</head>
<body>
<?php echo '<center>';?>
<div class="header_box"><?php echo $f->SYSTEM_NAME; ?></div>
<?php
if($acc_type == 'admin'){ ?>
<h1>Create new admin account</h1>
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="id" size="20" class="text_box"/></td>
<td><input type="button" value="Check"></td>
</tr>
</table>
<?php
}else if($acc_type == 'student'){ ?>
<h1>.:: Create student's account ::.</h1>
<label style="font-size: 18px"><label style="color: red">*</label> Marked fields are must</label><br/><br/>
<!-- <form action="" method="post">-->
<table border="0">
<tr class="unimportant_text">
<td>Test Username</td>
<td>:</td>
<td>
<form method="post" action="instant_search.php">
<input type="text" name="search" id="search_box" class="unimportant_text"/>
<input type="submit" class="search_button" value="Check" style="background: #808080; color: white; border: none"/><br />
</form>
</td>
</tr>
<tr>
<td>Username<label style="color: red">*</label></td>
<td>:</td>
<td>
<label class="results" style="font-size: 20px; color: green; font-weight: bold"></label>
<input type="hidden" name="uname" id="uname"/>
</td>
</tr>
<tr>
<td>Full Name<label style="color: red">*</label></td>
<td>:</td>
<td><input type="text" name="name" class="text_box"/></td>
</tr>
<tr>
<td>Contact<label style="color: red">*</label></td>
<td>:</td>
<td><input type="text" name="name" class="text_box" /></td>
</tr>
<tr>
<td>Contact (Optional)</td>
<td>:</td>
<td><input type="text" name="name" class="text_box" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" name="name" class="text_box" /></td>
</tr>
<tr>
<td>Course<label style="color: red">*</label></td>
<td>:</td>
<td>
<select name="course">
<?php
$courses = $f->get_courses();
foreach($courses as $c){ ?>
<option value="<?php echo $c[1];?>"><?php echo $c[1];?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td>Address</td>
<td>:</td>
<td><input type="text" name="name" class="text_box" /></td>
</tr>
</table>
<input type="submit" value="Submit">
<!-- </form>-->
<?php
}
?>
<?php echo '</center>';?>
</body>
</html>
そして、これが私のinstant_search.phpです:
if (isset($_POST['search'])) {
$word = mysql_real_escape_string($_POST['search']);
$res = $f->select_name($word);
if(mysql_num_rows($res) > 0) {
//echo 'Not available, choose another one';
} else {
echo $word;
}
}
私が欲しいのはとてもシンプルです。
$word
がデータベースで利用可能かどうかを確認したいだけです。そうでない場合は、それを非表示フィールド(uname)の値として設定します。次に、フォームを別のphpファイルに送信し、アカウントを作成します。ここでは2つの形式が使用されていますが、これも問題を引き起こしています。
私がその仕事をするのを手伝ってください。前もって感謝します。