iframe 에서 for 문으로 호출된 링크 실행하기
본문
링크 버튼을 클릭하면 ifrmae 페이지로 aaa.php?id=1111 페이지를 열어서
mysql 의 쿼리를 돌려서 추출된 데이타를 푸시 서버로 전송하려고 합니다.
푸시 1개씩 보내는것은 https://sir.kr/g5_tip/21712 의 형식으로 해결을 했습니다
여러개의 푸시를 보내려고 하다보니, 어찌 해야할지 길을 찾지 못하고 있어서 조언을 구하고자 합니다.
<button type="button" ...>클릭</a>
<iframe id="aaa" src="aaa.php?id=1111" width="0" height="0">
aaa.php 내용
<?php
$sql = " select * from 디비테이블 where id = '{$id}' ";
$qry = sql_query($sql);
for ($i =0; $row = sql_fetch_array($qry); $i++) {
// for문이 돌면서 push 서버로 링크를 전송
echo "https://aaaaa.cloudfunctions.net/doTsubFcmSend?token={$row['token']};
}
답변 4
iframe 을 쓰지 않아도 되지 않을까 싶습니다.
<button type="button" id="btn">클릭</a>
$("#btn").on('click', function() {
let _id = '1111';
$.ajax({
type: "POST",
url: "aaa.php",
{id : _id},
success: function(response) {
alert(response);
},
error: function(xhr, status, error) {
alert("에러 (" + xhr.status + ")");
},
});
});
$sql = " select * from 디비테이블 where id = '{$id}' ";
$result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$url = "https://aaaaa.cloudfunctions.net/doTsubFcmSend?token={$row['token']}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$response .= "|";
}
echo $response;
질문의 요지를 정확히 이해 못했는데...
for 문에서 생성된 링크가 다섯개라면 부모창에서 다섯개의 아이프레임으로 표현되길 원하시는 건가요?
아니면 다섯개 중 랜덤으로 하나만 뜨길 원하시는 건가요?
아니면 버튼이 다섯개가 생기면서 버튼클릭시 아이프레임의 내용이 바뀌어지는 이벤트를 원하시는 건가요?
물론 셋다 가능하구요. 정확히 어떤 걸 원하시는지 궁금해서요.
질문 요지가......... :)
버튼누르면 for 문이 돌면서 ifame 에 각각 푸시 경로가 실행되기
라면...
1. iframe 1개 출력후
2. 버튼 누르면...
3. iframe들 추가 생성...
이럼 끝나는 것 아닌가요???
정확히 어떤 걸 구현하시려는지 아직까지 이해를 못하고 있습니다민...
aaa.php 의 내용물을 각 경로에 * 으로 분기하게끔 데이터를 뿌려주고
https://sir.kr/*https://www.google.co.kr/*https://www.naver.com/
이걸 아작스로 처리하는게 좋을 듯 싶네요.
aaa.php 에 등록된 경로 숫자만치 아이프레임이 생겨납니다.
<button type="button" onclick="ajaxSrc()">클릭</button>
<div id="myDiv"></div>
<script>
function ajaxSrc() {
ajaxXhr = new XMLHttpRequest();
ajaxXhr.open("get", "aaa.php?id=1111");
ajaxXhr.onload = function() {
iframes = ajaxXhr.responseText.trim().split("*");
for (i of iframes) myDiv.innerHTML += "<iframe src='" + i + "'></iframe>";
}
ajaxXhr.send();
}
</script>