2017-04-17 52 views
-1

嗨,今天我做了一个PHP和AJAX的动态选择选项菜单,它工作得很好,但是当选择一个选项 - >'< - 内部的话,它给我没有结果。我真的不知道为什么它什么都没有显示。PHP选择选项菜单不显示结果'里面它

这里是我已经建立了一个例子链接:EXAMPLE

这是我用它来获得第二个结果:

<?php 
if(isset($_POST['get_option'])) 
{ 
    require("../config.php"); 
    $country = mysqli_real_escape_string($mysqli, $_POST['get_option']); 
    $find = mysqli_query($mysqli, "SELECT `league` FROM `teams` WHERE `country`='$country' GROUP BY `league`"); 
    while ($row = mysqli_fetch_array($find)) 
    { 
     echo "<option>".$row['league']."</option>"; 
    } 
    exit; 
} 
?> 

Screenshot of the database

+1

您的代码容易受到[** SQL注入攻击**](https://en.wikipedia.org/wiki/SQL_injection)的影响。你应该使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)准备带有绑定参数的语句,如[**这篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步喷射功能于PHP)。 –

+1

可能的重复[如何防止SQL注入PHP?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Qirel

+0

您需要发布您的ajax + html代码代替这一个 –

回答

0

你需要躲避撇号,否则字符串会以意外终止方式解决,例如:

WHERE country = 'Women's Day'

更好的方法是通过在每个选择的选项设置它的值送国家的ID而不是字符串,是这样的:

<option value="23">Australia</option> 
<option value="24">Austria</option> 
<option value="25">Belgium</option> 

,然后更改查询:

WHERE countryID = $id