Как вы используете переменную в $ _POST [] - PullRequest
4 голосов
/ 25 января 2010

Мне нужно перебрать кучу динамически генерируемых полей, но это не работает:

$population_density = $_POST['$current_location_id'];

У меня есть список мест с их населением на одной странице; Мне нужно сделать так, чтобы вы могли обновить многие из них одновременно. Поэтому я сделал имена полей динамически соответствующими location_id. Когда сообщение отправлено, мне нужно перебрать его так, но кажется, что вы не можете поместить переменную в сообщение.

for ( $y_count = 1 ; $y_count <= $zone_height; $y_count++ ) {
    for ( $x_count = 1 ; $x_count <= $zone_width; $x_count++ ) {
        $result = mysql_query("SELECT * FROM locations WHERE location_zone='$zone_id' AND x_location='$x_count' AND y_location='$y_count' ");
        $current_location = mysql_fetch_array( $result );
        $current_location_id = $current_location['ID'];
        $population_density = $_POST['$current_location_id'];
        $result = mysql_query("UPDATE locations SET population_density='$population_density' WHERE ID='$current_location_id' ");
    }
}

Можно ли поместить переменную в $ _POST []? Если нет, то как мне обновить динамически сгенерированные поля?

Ответы [ 4 ]

2 голосов
/ 25 января 2010
$_POST[$var] or $_POST["cst_$var"]
1 голос
/ 25 января 2010

Одинарные кавычки запрещают интерполяцию переменных в строке; либо используйте двойные кавычки, либо вообще не указывайте их.

1 голос
/ 25 января 2010

Используйте без кавычек:

$_POST[$current_location_id]

Теперь значение $current_location_id используется в качестве ключа вместо строки $current_location_id. Вы также можете использовать $current_location['ID'] напрямую:

$_POST[$current_location['ID']]

Даже в вашем запросе:

for ( $y_count = 1 ; $y_count <= $zone_height; $y_count++ ) {
    for ( $x_count = 1 ; $x_count <= $zone_width; $x_count++ ) {
        $result = mysql_query("SELECT * FROM locations WHERE location_zone='$zone_id' AND x_location='$x_count' AND y_location='$y_count' ");
        $current_location = mysql_fetch_array( $result );
        $result = mysql_query("UPDATE locations SET population_density='".$_POST[$current_location['ID']]."' WHERE ID='".$current_location['ID']."' ");
    }
}
0 голосов
/ 26 мая 2017

$ POST ["cst $ var"] - cst_ $ var представляет строку

Основной ответ: $ POST [ 'CST '. $ Вар]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...