2016-08-07 4 views
0

PHP에서 선택된 옵션 값을 얻으려고했는데 PHP에서 좌석 ID와 같은 선택된 값과 데이터베이스 값을 비교하려고했습니다. 그러나 정의되지 않은 오류가 발생합니다. 내 코드를 확인할 수 있습니까?옵션 값을 어떻게 얻을 수 있습니까?

<script type="text/javascript"> 
function transfer(){ 
var pix = $("#pix option:selected").val(); 
    document.abc.test.value =pix; 
    } 
</script> 
    <script     
    src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">  
</script> 
<script> 
     function ajaxWay() { 
     var sel = $("#pix option:selected").val(); 
    $.get("p.php?pix="+ sel); 
    // syntax: $.post(URL,data,callback); 
     $.get("p.php", function(dataFromtheServer) { 
     $("#result").html(dataFromtheServer); 
    });    
    } 
    </script> 
    <body> 
    <div id="a" style="text-align:center;"> 
     <?php 
    $servername = ""; 
    $username = ""; 
    $password = ""; 
    $dbname = ""; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    $sql = "SELECT * FROM seat" ;    

    $result = mysqli_query($conn, $sql) or die("Query: ($sql) [problem]"); 
    ?> 
    <form name="abc" method="get"> 
    <select name="select" id="pix"> 
     <?php 

      if (mysqli_num_rows($result) > 0) 
      { 
      while($row = mysqli_fetch_assoc($result)) 
       {          
       echo "<option value='".$row[seat_id]. "'>" .$row[seatNumber]. "</option>"; 
       } 
      } 
      mysqli_close($conn);  
     ?> 
    </select> 
    <input type="button" value="click" onclick="transfer();">  
    <input type="button" value="click" onclick="ajaxWay()">  
    <input type="text" name="test" id="text"> 
    <aside id="result">i will put the empty space from database</aside> 
</form> 

p.php

<?php 
$servername = "***.compute-1.amazonaws.com"; 
$username = "***"; 
$password = "***"; 
$dbname = "***"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "SELECT * FROM seat"; 
$result = mysqli_query($conn, $sql) or die("Query: ($sql) [problem]"); 
$fields = mysqli_num_fields($result); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    // display("<table border=1><th>firstname</th><th>lastname</th><th>items</th>","\n"); 

    while($row = mysqli_fetch_assoc($result)) { 

     if($_GET['pix'] == $row['seat_id']){ 

     if($row['seatStatus'] == 1) 
       { 
        echo "available" ; 
       }  
       else 
       { 

        echo "unavailable"; 
       }  
       } 
    } 

    } else { 
     echo "0 results"; 
    } 
    mysqli_close($conn);  

?> 
+0

야를 ... 당신의 데이터베이스 사용자의 나는 완전히 @redelschaap에 동의 – redelschaap

+0

을 암호를 변경 - 데이터베이스 세부 정보를 즉시 변경하십시오! – RamRaider

+0

감사합니다 !! 그것을 잊어 버렸습니다 – david

답변

0

이것은 줘야의 추측이지만,이 2 개 GET 요청이 매개 변수에, 그리고없이 다른 것 같습니다 - 콜백 함수가 나타납니다이 함께 작동하는 더 같아야합니다 그래서 아마도 매개 변수없이 호출 다음 전혀 도움이 될 것입니다 경우 모르겠어요

$.get("p.php?pix="+ sel, function(dataFromtheServer) { 
    $("#result").html(dataFromtheServer); 
}); 

그러나 나는 아약스 기능이 peculi 보이는 느낌 도움이되지 수 ar.

<html> 
    <head> 
     <title></title> 

     <script type="text/javascript"> 
      function transfer(){ 
       var pix = $("#pix option:selected").val(); 
       document.abc.test.value=pix; 
      } 
     </script> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 

     <script> 
      function ajaxWay() { 
       var sel = $("#pix option:selected").val(); 
       console.info('send ajax request: p.php?pix=%s', sel); 

       $.get("p.php?pix="+ sel, function(r) { 
        console.info('response: %s',r); 
        $("#result").html(r); 
       });    
      } 
     </script> 
    </head> 
    <body> 
     <div id="a" style="text-align:center;"> 
     <?php 

      $servername = ""; 
      $username = ""; 
      $password = ""; 
      $dbname = ""; 

      $conn=new mysqli($servername, $username, $password, $dbname); 
      $sql='select * from `seat`;'; 
      $result = $conn->query($sql); 
     ?> 
     <form name="abc" method="get"> 
      <select name="select" id="pix"> 
       <?php         
        if($result){ 
         while($rs=$result->fetch_object()){ 
          echo "<option value='{$rs->seat_id}'>" . $rs->seatNumber; 
         } 
        } 
        $conn->close();  
       ?> 
      </select> 
      <input type="button" value="click" onclick="transfer();">  
      <input type="button" value="click" onclick="ajaxWay()">  
      <input type="text" name="test" id="text"> 
      <aside id="result">i will put the empty space from database</aside> 
     </form> 
    </body> 
</html> 


/* p.php */ 
$servername = "ec2-52-201-212-193.compute-1.amazonaws.com"; 
$username = "s2016b_user21"; 
$password = "s2016b_user21"; 
$dbname = "s2016b_user21"; 

/* alternative sql */ 
$conn = new mysqli($servername, $username, $password, $dbname); 
$sql='select `seatStatus` from `seat` where `seat_id`=?;'; 
$stmt=$conn->prepare($sql); 
$stmt->bind_param('i', $_GET['pix']); 

if($stmt){ 

    $stmt->execute(); 

    $stmt->bind_result($status); 
    $stmt->fetch(); 

    echo $status==1 ? 'available' : 'unavailable'; 
} 

$conn->close(); 
+0

감사합니다. 시도했지만 작동하지 않습니다. 아무 일도 일어나지 않습니다. – david

+0

확인 - jQuery를 사용하지 않았습니다. – RamRaider

+0

문제 없음 .. 여러 가지 방법을 시도했지만 정의되지 않은 오류가 발생합니다. 아마 내가 실수를 한 것 같아요. 아직 찾을 수 없어요. 도움을 주신 덕분에 – david

0

저는 JQuery를 잘 모릅니다.
JavaScript에서 console.log(sel)을 사용하고 PHP에서 var_dump($_GET['pix'])을 사용하여 "sel"값을 이미 획득했는지 확인할 수 있습니다.

//javascript 
var pix = $("#pix option:selected").val(); 
console.log(pix); 
//PHP 
var_dump($_GET['pix']); 

var_dump($_GET['pix'])의 결과가 NULL 인 경우, 자바 스크립트 코드를 더 그렇게 보일 것입니다 :

<script> 
    function ajaxWay() { 
    var sel = $("#pix option:selected").val();//check the value of sel 
    var url = "p.php";//check the path of p.php 
    $.get(url,{'pix':sel},function(dataFromtheServer) { 
     $("#result").html(dataFromtheServer); 
    });    
    } 
</script> 
+0

나는 var_dump ($ _ GET [ 'pix'])를 사용하려고했습니다; , NULL이 발생했습니다. – david

+0

그렇다면 자바 스크립트 코드를 확인해야합니다. 브라우저의 개발자 도구를 사용하여 코드를 디버깅 할 수 있습니다. – chenxinlong

+0

오 ~! 덕분에 작동하지만, $ .get (url, { 'pix': sel}, function (dataFromtheServer)와 같은 논리를 이해하지 못했습니다. {pix : sel}에 대해 배웠습니다. 당신은 조금 설명 할 수 있겠습니까? – david

관련 문제