2016-02-01 61 views
1

插入HTML选择的值作为文本我有这样的选择栏: `如何在MySQL通过PHP

<select class="large-fld" id="regioni" name="region" value="" > 
<option value="0" hidden>City...</option> 
<option value="775">Tbilisi</option> 
<option value="776">Kutaisi</option> 
<option value="788">Batumi</option> 
and so on... 

现在我需要的时候我会打电话给这个选择'region'在PHP中,然后在MySQL中插入值。
例如:有人选择第比利斯(即$_POST['region']=775),此值(775)转到DB。我需要PHP从这个值中选择相当于HTML的数值,而不是775在DB中插入TBILISI ...
任何线索?

在此先感谢...

+0

你使用ajax吗? –

+0

不,可悲的是,它非常绿色 –

+0

据我猜,通过PHP没有机会...... :)对吗? –

回答

0

是775>第比利斯,776>库塔伊西在HTML静态数据? 只要你可以创建一个像

$regions = array('775'=>'Tbilisi','776'=>'Kutaisi'); 

和加工形式替代值前一个数组:

$region = $regions[$_POST['region']]; 
+0

好的...但如果有一个巨大的选择领域?例如整个世界,还是很多人? 你的方法可能工作(也许),但不是有效的:) 必须是在PHP中的东西命令,它从选择字段 或某些方法,如python中的xml解析器看到第比利斯,它可以看到整个html并为您提供完全控制权。 –

+0

将所有数据从选择框移动到数据库或更大的数组oO会更好。和不。 PHP接受一个没有html代码的_POST数组[key => value]。你可以用你希望的任何数据做一个Ajax请求,但是使用默认的POST请求,你必须有一些数据来比较 –

+0

以及它如何与AJAX? –

0

设置一个开关语句中列出的所有值及其相应的名称。这样做的主要优点是您已经列出了所有可能的“安全”值,因此如果用户尝试使用SQL注入,他们将无法攻击您,因为它将恢复为默认情况。但缺点是如果有很多字段,你将不得不列出所有的字段。我很确定可能有办法破解系统,获得POST请求的“innerHTML”属性,但我不确定。

$region = $_POST["region"]; 

switch($region){ 

    case "775": 
     $insert = "Tbilisi" 
    break; 
    ...//more cases 

    default: 
    //if no case matches, do something here 

    break; 

} 
0

我不知道你是否还需要这个信息,但是: 1.首先,你为什么不使用这样的选择的选择吗?

<option value="Tbilisi">Tbilisi</option> 
<option value="Kutaisi">Kutaisi</option> 

然后,PHP将直接取名。

  • 如果由于某种原因,该选项上是不可能的,我也建议jQuery
  • 利用这个(来发表您的价值-as区域名称 - 你PHP脚本):

    $var = $("#regioni option:selected").text(); 
    $.post("your-php-script.php", { region: $var }); 
    

    上面这段代码也应包含在事件处理程序(的onclick,ONSELECT ...),这取决于你所需要的。阅读更多关于jQuery的内容,你需要它。