2017-08-28 36 views
0

我想要做的是發佈下拉菜單的值(在reservation.php中有發言人的id),並將其傳遞給名爲(getuser)的PHP文件。在PHP getuser中,它將使用mysqli查詢中的演講者下拉列表的值並將其顯示到表中。然後這個表格將顯示在一個(div中,在reservation.php中有一個id結果)。我的ajax帖子出了什麼問題

當我按下F12這是我得到 enter image description here

與下拉揚聲器這是我的PHP代碼中的錯誤:

<!DOCTYPE html> 

<?php 
    error_reporting(E_ALL & ~E_NOTICE); 
    error_reporting(E_ERROR | E_PARSE); 
    session_start(); 
    date_default_timezone_set('Asia/Manila'); 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "srdatabase"; 

    $conn = new mysqli($servername, $username, $password, $dbname); 

    $selectspeakers = "SELECT * FROM speakers"; 
    $sp_result = mysqli_query($conn, $selectspeakers); 
?> 

<html> 
<head> 
<title>Reservation</title> 
<link rel="stylesheet" type="text/css" href="styles.css"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script src='https://www.google.com/recaptcha/api.js'></script> 
</head> 
<body> 

    <form id="reservationform" name="reservationform" method="POST"> 

    <select id="speaker" name="speaker" class="dropdown" style='text-transform:capitalize;'> 
     <?php while($array = mysqli_fetch_array($sp_result)):;?> 
     <option value = "<?php echo $array['speaker_fullname'];?>" <?php if($_SESSION["selectedSpeaker"] == $array['speaker_fullname']) echo "selected";?> ><?php echo $array['speaker_fullname'];?></option> 
     <?php endwhile;?> 
    </select> 
    </form> 

<div id="footer">Copyright 2017</div> 

<script> 
$(document).ready(function(){ 
    $('#speaker').change(function(){ 
     var txt = $(this).val(); 
     if(txt != '') 
     { 
      $.ajax({ 
       url:"getuser.php", 
       method: "post", 
       data:{search:txt}, 
       dataType:"text" 
       success:function(data) 
       { 
        $('#result').html(data); 
       } 
      }); 
     } 
     else 
     { 
      $('#result').html(''); 
     } 
    }); 
}); 
</script> 


</body> 
</html> 

這其中使用POST數據並顯示給表

的PHP
<!DOCTYPE html> 
<html> 
<head> 

<style> 
table { 
    width: 100%; 
    border-collapse: collapse; 
} 

td{ 
    border: 1px solid ddd; 
    padding: 10px; 
} 

th 
{ 
    text-align: left; 
    height:20px; 
    background-color: #4CAF50; 
    color: white; 
    padding:10px; 
    border: 1px solid #ddd; 
} 
</style> 
</head> 
<body> 

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "srdatabase"; 

$con = new mysqli($servername, $username, $password, $dbname); 

$sql="SELECT * FROM reservations WHERE speaker = '".$_POST["search"]."' AND reservationstatus = 'approved' ORDER BY date DESC"; 
$result = mysqli_query($con,$sql); 
echo "<h3>Speaker Schedule</h3>"; 
echo "<table class='reservations-table'> 
<tr> 
<th>Speaker</th> 
<th>Reservation Date</th> 
<th>Reservation Time</th> 
<th>Location</th> 
</tr>"; 
while($row = mysqli_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td>" . $row['speaker'] . "</td>"; 
    echo "<td>" . $row['date'] . "</td>"; 
    echo "<td>" . $row['time'] . "</td>"; 
    echo "<td>" . $row['location'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
mysqli_close($con); 
?> 
</body> 
</html> 
+1

瞭解準備stateemnts防止SQL注入 – Jens

+0

使用'mysqli_error'執行SQL語句,以獲取有關SQL的錯誤信息後 – Jens

+0

你有什麼問題沒有Ajax構成郵寄或你在服務器端錯誤? –

回答

0

這是因爲你錯過了ajax之前的逗號success

$.ajax({ 
    url:"getuser.php", 
    method: "post", 
    data:{search:txt}, 
    dataType:"text", //comma 
    success:function(data) 
    { 
     $('#result').html(data); 
    } 
});