나는 form.php
파일을 가지고 있습니다.이 파일은 성과 이름으로 데이터베이스를 검색하기위한 작은 양식을 가지고 있습니다. 양식은 JavaScript 함수를 사용하여 AJAX를 통해 search_name.php
에 변수를 전송하고 mydatabase
에서 쿼리 된 정보를 양식의 값으로 보냅니다.AJAX 양식을 사용하여 데이터베이스 업데이트
#result
요소의 양식에있는 정보를 검색 결과로 업데이트 할 수 있기를 원합니다.
AJAX를 통해 반환 된 양식이없는 작은 예제를 시도했지만 작동했지만 어떤 이유로 더 큰 프로젝트에서 수행 할 수 없습니다.
아무도 도와 줄 수 있습니까? 예제와 정보를 찾았지만 AJAX와 PHP를 처음 접했고 왜 이런 일이 일어나고 있는지 알 수 없습니다.
var vars = "firstname="+fn+"&lastname="+ln;
"제출"을 포함하지 않는 당신의 PHP 스크립트 -이 :
search_name.php
<?php $form_profile = '<form method="POST" action=""><table width="450px"><tr><td><label for="firstname" >First Name: </label></td><td><input type="text" id="first_name" name="first_name" maxlength="50" size="30" value="'.$first_name.'"/></td></tr><tr><td><label for="lastname" >Last Name: </label></td><td><input type="text" id="last_name" name="last_name" maxlength="50" size="30" value="'.$last_name.'"/></td></tr><tr><td><label for="headline">Headline</label></td><td><input type="text" id= "headline" name="headline" maxlength="50" size="30" value="'.$profile_headline.'"/></td></tr></table><input type="submit" id="submit" name="submit" value="Save and Update"></form>'; ?>
<?php
//check if form has been submitted
if(isset($_POST['submit'])){
$first_name= $_POST['first_name'];
$last_name= $_POST['last_name'];
$headline= $_POST['headline'];
$summary= $_POST['summary'];
$title_array= $_POST['title'];
$company_array= $_POST['company'];
$start_month_array= $_POST['start_month'];
$start_year_array= $_POST['start_year'];
$end_month_array= $_POST['end_month'];
$end_year_array= $_POST['end_year'];
if($first_name && $last_name){
//connect to server
$link = mysql_connect("localhost", "root", "########");
if($link){
mysql_select_db("mydatabase",$link);
}
//check if person exists
$exists = mysql_query("SELECT * FROM profile WHERE firstname = '$first_name' AND lastname = '$last_name'") or die ("The query could not be complete.");
if(mysql_num_rows($exists) != 0){
//update
mysql_query("UPDATE profile SET headline='$headline' WHERE firstname = '$first_name' AND lastname = '$last_name'") or die("Update could not be applied");
echo "Success!!";
}else echo "That alumni is not in the database";
}else echo "You must provide a first and last name.";
}
?>
위험 ** ** [** 기존 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [최신 대체] (http : //)를 사용해야합니다. php.net/manual/en/mysqlinfo.api.choosing.php). 또한 [SQL 주입 공격] (http : // bobby-tables)에 취약합니다.co.kr /) ** 현대 API를 사용하면 [방어] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)를 쉽게 할 수 있습니다. – Quentin