У меня есть массив с именем $ content_ids, который я пытаюсь опубликовать в виде скрытого поля в форме.
Я узнал, как это сделать из другого ответа здесь, но я не могу заставить его работать.
Вот лишь некоторые из моих входов, включая скрытое поле для массива
echo "<input type=\"hidden\" value=\"1\" name=\"e\">";
foreach($content_ids as $ids)
{
echo "<input type=\"hidden\" value=\"".$ids."\" name=\"ids[]\">";
}
echo "<input type=\"hidden\" value=\"".$content[$x]['TranslationID']."\" name=\"translationID\">";
Попытка print_r ($ _ POST ['ids']) ничего не показывает
Попытка:
if($_POST['ids'] != ""){
echo "hello";
}
также ничего не дает. Но остальная часть данных проходит через ok.
Кто-нибудь понимает, почему?
Изменить для добавления: Протестировано, чтобы убедиться, что массив фактически содержит данные в точке размещения его в скрытом поле. распечатывая массив непосредственно перед тем, как будет установлено скрытое поле, и все отобразится в порядке.
Изменить для добавления: как создается массив:
$content_ids = array();
for($i = 0; $i < count($content); $i++)
{
$content_ids[] = array_push($content_ids, $content[$i]['ContentID']);
}
вывод для массива:
Массив ([0] => 2222 [1] => 1 [2] => 1111 [3] => 3)
Я действительно не знаю, почему индекс 1 или индекс 3 есть. Они не являются частью данных из базы данных. Он должен содержать только 1111 и 2222.
Я нашел проблему. Я считаю, что проблема заключалась в создании массива.
Единственное, что я изменил, было:
$content_ids = array();
for($i = 0; $i < count($content); $i++)
{
$content_ids[] = array_push($content_ids, $content[$i]['ContentID']);
}
И я изменил это на это:
$content_ids = array();
for($i = 0; $i < count($content); $i++)
{
array_push($content_ids, $content[$i]['ContentID']);
}
Я не знаю, как, но это, по-видимому, фиксировало как нежелательные индексы в массиве, так и отказ опубликовать скрытое поле.
Теперь я получаю массив успешно как переменную POST. Спасибо всем за помощь
Я запустил этот код и смог получить все опубликованные значения
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<form action ="" method="POST" >
<?php
//supose your values are
$content_ids = array('10','20');
$x = 1;
$content[$x]['TranslationID'] =20;
// your code
echo "<input type=\"hidden\" value=\"1\" name=\"e\">";
foreach($content_ids as $ids)
{
echo "<input type=\"hidden\" value=\"".$ids."\" name=\"ids[]\">";
}
echo "<input type=\"hidden\" value=\"".$content[$x]['TranslationID']."\" name=\"translationID\">";
?>
<input type="submit" />
</form>
</body>
</html>
<?php print_r($_POST); ?>
Здесь вывод
Array ( [e] => 1 [ids] => Array ( [0] => 10 [1] => 20 ) [translationID] => 20 )
if(!empty)
вместо!= ""
?