데이터베이스의 이미지를 표시하고 있습니다. 각 이미지에는 양식과 제출 버튼이 포함 된 설명 상자가 있습니다. 제출 단추에는 표시되는 이미지의 이름이 있습니다. 전의. 이미지 이름이 flowers.jpg 인 경우 제출 버튼의 이름은 flowers.jpg로 설정됩니다. (나는 문자열을 대체 했으므로 내 코드에서 flowersjpg로 설정됩니다.) 이름은 아무런 문제없이 제출 버튼에 추가됩니다. 몇 개의 이미지가 있기 때문에 isset() 함수의 $ _POST [] 매개 변수에 $ row [ 'image'] (이미지 이름)을 전달하려고했지만 작동하지 않습니다. - 나는 $ _POST 매개 변수에서 일반 문자열로 이름을 올려 놓을 때 모든 코드가 하나 개의 문서
$result = mysqli_query($conn, "SELECT * FROM uploads ORDER BY timestamp DESC");
while($row = mysqli_fetch_array($result))
{
// Prints all the photos with a caption
echo "<div class='wrapper' name=".$row['image'].">";
echo "<div class='caption'>";
echo "<h3>".$row['title']."</h3>";
echo "<p class='description'>".$row['description']."</p>";
echo "</div>";
echo "<img src='images/uploads/".$row['image']."'/>";
// name for submit button, the $row['image'] contains the entire image name so certain characters have to be removed
**$name = str_replace(array(".", "-", ":", "'", "/", " "), "", $row['image']);**
// comment box - just a form with a submit
echo "<div class='commentBox'>
<form action='test.php' method='POST'>
<textarea placeholder='Say something nice!' name='comment'></textarea>
// CREATES NAME FOR BUTTON. FOR EACH IMAGE, THE BUTTON HAS THE IMG NAME
**<button type='submit' name='".$name."' value='submit'> post </button>**
</form>
</div>";
echo "</div>";
}
if(isset($_POST["'".$name."'"]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
에, 그것을 잘 작동하지만 난에 변수를 넣을 때, 그것은 작동하지 않습니다. $ name 변수는 문자열입니다.
이 작동하지만 버튼 이름과 $ _POST의 문자열이 동일하면 사용되는 모든 문자열이 작동합니다.
echo "<button type='submit' name='flowerspng' value='submit'> post </button>";
if(isset($_POST[flowerspng]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
이 코드는 그렇지 않습니다. 변수가 $ _POST 매개 변수 안에 전달 될 수 있다는 것을 알기 때문에 코드에 무엇이 잘못된 것인지 이해하지 못합니다. 내 구문이 올바르지 않습니까? 분명히 변수가 설정되어 있지 않으면 경고 상자가 나타납니다.
echo "<button type='submit' name='".$name."' value='submit'> post </button>";
if(isset($_POST["'".$name."'"]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
나는 이것을 시도했지만 $ name 주위에 따옴표가 없기 때문에 효과가 있다고 생각하지 않습니다.
echo "<button type='submit' name=$name value='submit'> post </button>"
if(isset($_POST[$name]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
당신의 체크 세트의 '$ name'은 각 반복을 덮어 쓰기 때문에 항상 마지막 행의 이름이됩니다. –
그게 무슨 일이 일어나면 코드가 데이터베이스의 마지막 이미지에 대해 작동하지 않겠습니까? 모든 버튼을 클릭했는데 알림 상자가 전혀 표시되지 않습니다. 나는 PHP에 조금 익숙하므로 어리석은 질문을하는 것에 대해 사과드립니다. – WhiteVeils
하지만 $ name 주위에 따옴표가 있어야합니다 (즉, 마지막 시도가 맞았지만 마지막 항목을 제출하지 않았을 가능성이 큽니다). 기본적으로 $ _POST 키는'charlie'이지만 (예를 들어) 따옴표를 쓰면 다른 문자열 인 charlie라는 키를 찾을 수 있습니다. –