나는 데이터를 데이터베이스에 제출하고 특정 테이블에 항목을 추가 할 수 있도록 웹 양식 세트를 작성해야하는 과제를 수행하고 있습니다. 기본적으로 사용자가 필드에 입력하는 동안 php 요청을 통해 db에서 검색된 제안을 사용자에게 제공하는 필드를 만들었습니다. 제안 목록이 나타나고 옵션을 선택할 수 있습니다.PHP로 html 폼에서 데이터 가져 오기
'books'테이블에 새 항목을 추가하고 '작성자'테이블의 요소만으로 작성자 양식을 채울 수 있습니다 (사용자가 임의 작성자를 지정할 수 없도록). 그렇게하기 위해 자동 노출 방법을 사용했습니다.
'books'테이블에는 'authors'테이블의 id 속성 (기본 키) 인 외래 키 'aut_id'가 있습니다.
필자는 전에 php를 사용하여 제안 목록 (저자 이름, 저자 성 및 저자 ID)을 검색하고 있습니다. 그러나 사용자가 제안을 클릭하면 웹 양식이 작성자 이름과 성으로 채워지고 사용자가 "제출"을 클릭 할 때 aut_id 필드가 올바르게 채워지도록이 쿼리를 활용하는 방법을 모르겠습니다. I가 사용하고 PHP는
<script type="text/javascript">
function lookup(inputAuthor) {
if(inputAuthor.length == 0) {
// Hide the suggestion box.
$('#suggestions').hide();
} else {
$.post("suggestionRetriever.php", {queryString: ""+inputAuthor+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue) {
$('#inputAuthor').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>
... 더 hrml ... 여기
<div class="form-group">
<label for="inputAuthor">Author</label>
<input type="text" class="form-control" id="inputAuthor" placeholder="Author name" onkeyup="lookup(this.value);" onblur="fill();">
</div>
<div class="suggestionsBox" id="suggestions" style="display: none;">
<div class="suggestionList" id="autoSuggestionsList">
</div>
</div>
그리고있다 :
나는 몇 가지 코드를 넣을 수 있습니다, 여기에 HTML + 스크립트입니다 추천 목록 검색 :
if(!$db) {
echo 'ERROR: Could not connect to the database.';
} else {
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
if(strlen($queryString) >0) {
$query = $db->query("SELECT aut_name, aut_surname, aut_id FROM author WHERE aut_name LIKE '$queryString%' LIMIT 10");
//I could echo the aut_id but I wouldn't know how to retrieve it on Submit with php
if($query) {
while ($result = $query ->fetch_object()) {
if(!$result->aut_surname){
echo '<li onClick="fill(\''.$result->aut_name.'\'); return false"><a href="">'.$result->aut_name.'</a></li>';
}else{
echo '<li onClick="fill(\''.$result->aut_name.' ' .$result->aut_surname.'\'); return false"><a href="">'.$result->aut_name.' ' .$result->aut_surname.'</a></li>';
}
}
} else {
echo 'ERROR: There was a problem with the query.';
}
} else {
// Dont do anything.
}
} else {
echo 'There should be no direct access to this script!';
}
}
양식에 올바른 이름과 성을 입력했는데 필요한 것이 아닙니다. 그래서 나는 다른 필드에 대한 것처럼 $ _POST PHP 함수를 사용할 수 없습니다. 어떻게 든이 문제를 해결할 수 있지만 가장 적절한 방법을 알고 싶습니다. PHP를 처음 접했기 때문에 뭔가 빠져있을 수도 있습니다. DOM을 사용하여 올바른 내용을 검색하는 사람들을 읽었습니다. 나는 사용자가 입력 한 글쓴 ID를 찾아 적절한 데이터를 INSERT 할 수 있도록 DB에 다른 쿼리를 할 수는 있지만 이미 검색 한 쿼리를 활용할 수있는 방법이있을 것이라고 생각한다. 제안 목록. 나는 방법을 모른다.
내가 문제를 분명히하지 않으면 아무 것도 묻지 말고 더 잘하려고 노력할 것입니다. 시간 내 주셔서 감사드립니다.
나는 PHP 스크립트에 aut_id을 반환
감사합니다! 좋아하는 일을했습니다.제 생각에는 이것에 충실 하겠지만 JSON 형식 대신 숨겨진 필드를 사용하는 것은 나쁜 습관이라고 생각합니까? – G4bri3l
전적으로 귀하에게 달려 있습니다. JSON을 통해 데이터를 보낼 것입니다. 필드 자체 또는 숨겨진 필드를 채우는 것은 사용자에게 달려 있습니다. 링크 된 응답에서 (리디렉션되지 않은 경우) 일단 선택되면 실제로 표시된 '값'은 분명히 사용자에게 표시하려는 항목이 아닌 항목의 ID가되므로 사용자가 가지고 있어야 할 항목입니다. 어떤 경우 든 숨겨진 필드. –