2013-03-25 2 views
0

자바 스크립트 함수 "get2"에 여러 값을 전달한 다음 "data2.php"파일을 호출하여 제출 된 값에 따라 데이터베이스에서 데이터를 검색하려고합니다. 드롭 다운 목록/텍스트 상자. 둘 다 별도로 작동하지만 함께 사용하면 안되는 오류는 "정의되지 않은 색인"입니다. 누구든지 제발 도와 주실 래요?여러 값을 자바 스크립트에서 PHP 파일로 전달

<script type="text/javascript"> 
    function get2() { 
     $.post('data2.php', { gender: form2.gender.value, 
           skills: form2.skills.value }, 
      function(output) { 
       $('#gender').html(output).show(); 
       $('#skills').html(output).show(); 
      } 
     ); 
    } 
</script> 

참고 지금은 모두 갱신 :

<script type="text/javascript"> 
    function get2() { 
     $.post('data2.php', { gender: form2.gender.value }, 
      function(output) { 
       $('#gender').html(output).show(); 
      } 
     ); 
     $.post('data2.php', { skills: form2.skills.value }, 
      function(output) { 
       $('#skills').html(output).show(); 
     }); 
    } 

</script> 
... 
... 
<form name="form2"> 
     <Select name="gender"> 
      <OPTION>Male</OPTION> 
      <OPTION>Female</OPTION></SELECT> 

What is the patients relationship status? 
(hold "Ctrl" key to select multiple options at one time): 
<br/><br/> 
     <BR> 
     <BR> 
     <select name="skills"> 
      <OPTION value="Single" selected="selected">Single</OPTION> 
      <OPTION value="With partner">With partner</OPTION> 
      <OPTION value="Separated from partner">Separated from partner</OPTION> 
      <OPTION value="Partner died">Partner died</OPTION> 
     <OPTION value="DK">DK</OPTION> 
     </select> 
     <BR> 
     <BR> 
     <INPUT TYPE="button" VALUE="search" onClick="get2();"> 
</form> 
<div id="gender"></div> 
<div id="skills"></div> 

DATA2.PHP

<?php 
mysql_connect("localhost", "root", ""); 
mysql_select_db("grist"); 

$gender = $_POST['gender']; 
$skills = $_POST['skills']; 

if (($gender==NULL) && ($skills==NULL)) { 
    echo"please enter gender and skills!"; 
    } 
else 
{ 
    $dob4 = mysql_query("SELECT * FROM patients WHERE gender='$gender' AND relationship_status='$skills'"); 
    //$dob_num_rows = mysql_num_rows($dob); 
    while($row4 = mysql_fetch_array($dob4)){ 
    $a=$row4['patient_id']; 
    $b=$row4['gender']; 
    $c=$row4['dob']; 
     echo "<b>Patient:</b> $a"; 
     echo "<b>Patient:</b> $b"; 
     echo "<b>Patient:</b> $c"; 
    } 
} 
?> 
+0

여러분은 변수가 하나만 전달 될 때마다'data2.php'에 두 개의 게시물을 만들고 있습니다. 동시에 두 가지를 모두 전달해야합니다. –

+0

어떻게해야합니까? thanks – shieldcy

+0

또한 mysql_query()를 사용하지 말라. (http://php.net/manual/en/function.mysql-query.php) [SQL Injection]에 취약하다. (http : // en.wikipedia.org/wiki/SQL_injection). 나는 '$ gender ='또는 '1'= '1'- ''(전체 환자 목록을 반환) 또는 $ gender ='를 포함하는 양식의 프로세서에 사용자 정의 POST를 쉽게 작성하고 보낼 수 있으며, DELETE * FROM 환자; - '그리고 당신은 나쁜 날을 보내 게 될 것입니다. 대신 Mysqli 또는 PDO를 사용하십시오 (위 페이지의 링크). – msanford

답변

1

이 당신이 POST 요청을 사용하여 페이지에 두 개의 값을 보낼 수있는 방법입니다 성별 및 기술 요소. 나는 네가하고 싶은 것을 확신하지 못한다. data2.php는 두 매개 변수를 모두 사용해야합니다.

또한 사용자 입력을 삭제해야합니다. 현재 SQL 주입 공격에 취약합니다. PDO와 같은 준비된 명령문을 사용할 수있는 데이터베이스 클라이언트 라이브러리를 사용하는 것이 더 좋습니다. 사용중인 오래된 mysql 라이브러리는 삭제되고 어느 시점에서 PHP에서 제거 될 것입니다.

+0

ive 그것을 시도했지만 작동하지 않는다, 난 아직 정의되지 않은 구문 오류. – shieldcy

+0

어느 라인에서 왔습니까? – Joni

+0

ive 다시 시도하고 작동, 덕분에 많은 도움을! :) – shieldcy

관련 문제