2013-09-01 1 views
1

Twitter 1.1 API를 호출하고 50 개의 ID 번호를 반환하는 PHP 스크립트가 있습니다. 그런 다음 Foreach 인수를 사용하여 페이지에 개별 결과를 인쇄합니다. 각기 다른 ID 번호를 숨겨진 값으로 버튼에 저장 한 다음 JQuery Ajax를 사용하여 그 값을 50 개의 ID 번호를 남기지 않고 새로 고치지 않고도 다른 PHP 페이지에 게시하여 추가 처리 할 수 ​​있습니다. 내가 제거하면Foreach는 Ajax 및 onsubmitForm을 사용할 때 배열에서 하나의 값만 인쇄합니다.

foreach ($Results as $arrResult) { 
    $IDstring = $arrResult['id_str']; 
    print("<form id='RT' onsubmit='return submitForm();'> 
       <input type='hidden' name='id' value=$IDstring> 
       <input type='submit' value='ReTweet'></form> 
    "); 
} 

그러나 :이의 Foreach 인수를 사용하는 경우 50 개 ID 번호는 내가 원하는 오히려없는 50 개 개인 ID 번호를 것보다, 배열의 모든 첫 번째 결과이다

데 Foreach 인수에서이 섹션은 50 개 개인 ID 번호는 형태의 숨겨진 값으로로 인쇄됩니다

onsubmit='return submitForm();' 

문제는 내 JQuery와 스크립트 SubmitForm에과 JQuery와 위의 해당 행이 실행되지 않고 듣고입니다. 여기에 내 JQuery 스크립트가있다 :

나는 onsubmit = 'return submitForm(); Foreach에서 50 개의 고유 한 ID 번호를 제공합니다.이 코드는 각각 개별 값을 포함하는 50 개의 버튼을 인쇄하기 때문입니다. 하지만 submitForm을 청취하는 JQuery 스크립트가 없기 때문에 나는 메서드 = 'post'action = 'results.php을 POST 단추의 값에 POST하기 위해 추가해야하지만 이는 결과 result.php가로드되지 않음을 의미합니다. 원하는 :

foreach ($Results as $arrResult) { 
    $IDstring = $arrResult['id_str']; 
    print("<form id='form' method='post' action='results.php'> 
       <input type='hidden' name='id' value=$IDstring> 
       <input type='submit' value='ReTweet'></form>"); 
} 

그래서, 나는 또한 나를 JQuery와 아약스 스크립트를 사용시키는 동안 foreach 문이, 50 개 고유 한 ID 번호를 인쇄 할. 이것이 분명하기를 바라며, 내가하고 싶은 것을 설명하는 다른 방법을 알지 못합니다. D

+0

얼마나 많은 서식을 사용 했습니까? 하나만 ?? 또는 문제는 다른 값으로 널 값을 얻는 것입니다. –

답변

2

좋아요, 이제 당신이하려는 일을 이해합니다. 나는 이렇게 할 것입니다.

PHP :

<?php 
foreach ($results as $arrResult) { 
    $tweetId = $arrResult['id_str']; 
    print('<button type="button" class="mark-tweet" data-tweet-id="' . $tweetId . '"><br/><br/>'); 
} 

자바 스크립트 :

$(function() { 

    $('.mark-tweet').click(function() { 
     var id = $(this).attr('data-tweet-id'); 
     $.ajax({ 
      type: 'POST', 
      url: 'results.php', 
      data: {tweetId : id} 
     }); 
    }) 
     .done(function() { 
      alert('The tweet has been deleted'); 
     }) 
     .fail(function() { 
      alert('Oops, something went wrong! Please try again.'); 
     }); 

}); 

참고 : 당신이 그랬던 것처럼 나는 $ 결과에서 'R'을 활용하고 있지 않다. 클래스 이름 만 대문자로 시작해야합니다 (클래스가 아닌 OOP의 클래스)

+0

안녕하세요 닐 :) 나는 짹짹과 메시지를 일괄 적으로 삭제할 때 말한 것과 정확히 동일합니다.하지만 어떤 짹짹이 리트 윗을 할 수 있는지 알고 싶습니다. 그래서, 나는 각 짹짹을 텍스트로 인쇄 할 수 있고, 원할 경우 ReTweet 버튼을 사용할 수 있습니다. 따라서 열이 있으면 모든 ID 번호의 대량 ReTweeting 대신 버튼을 클릭하여 지정할 수 있습니다. –

+0

버튼을 클릭했을 때 팝업되는 보이지 않는 iframe을 사용하여이 작업을 수행 할 수 있습니다. 하지만 JQuery 스크립트를 사용하려고합니다. –

+0

실제로 말하고있는 데이터를 식별하려면 백엔드에 대한 키가 * 항상 필요합니다. 없으면 시스템을 구축 할 수 없습니다. –

0

좋아, 이제 알려 드리겠습니다. 신분증을 사용하는 것이 올바른 길입니다. 이것은 간단합니다.

당신이 무엇을 렌더링해야하는지 JS 함수 &이라고 부르는 onclick이있는 50 개의 버튼이 ID를 전달합니다. 그러면 AJAX 게시물을 처리 할 수 ​​있습니다. 양식이 필요하지 않습니다.

또는 별도의 ID를 ('폼'. $ tweetId), 버튼 요소를 구별 이름 & 값을 가질 수 있기 때문에 숨겨진 입력이 각각 &, 버튼 (또는 단지 <button> 제출 50 양식을 렌더링 할 수는 content)와`postTweetForm ('form $ {tweetId})'을 호출하는 onclick을 사용하여 선택한 양식의 ID를 JS 함수에 전달합니다.

정말 JS에서 작업하기 때문에 UI를 간단하게 유지하면 & JS가 작업을 수행하는 것이 가장 쉽습니다. 다음은 시작하는 예입니다. PHP :

foreach ($Results as $arrResult) { 
    $tweetId = $arrResult['id_str']; 
    print("<button type='button' onclick='markTweet('".$tweetId."');'><br>\n"); 
} 

자바 스크립트 : 사용자가이 일을 알고있다 그래서 아무튼 때문에

function markTweet (tweetId) { 
    $.post({ 
     url: 'results.php', 
     data: {'tweetId': tweetId} 
    ); 
} 

당신은 또한 AJAX 포스트에 success 핸들러에 넣어해야합니다 .. 작은 녹색 틱이나 뭐 페이드 언제나. (나는 당신이 그걸 가지고 놀게 할거야.)

그것을 시도하고 질문을 계속한다. &은 다른 사람들을 도울 수있게되었습니다.

+0

미안 토마스, 저는 코딩하기가 너무 까다로워서 다른 사람들에게 간결한 방법을 알기가 어려울 수 있습니다. 나는 그 질문을 다시 쓰고 있고 그 글을 편집 할 것이다. –

+0

그것이 더 이해가되는지 나는 모른다. 어쨌든 침대로 가야하지만 조언을 주셔서 감사합니다. 토마스 :) –

+0

그래서, 지금 당신이 의미하는 바를 정확히 알고 있습니다. 페이지 소스를 살펴보면 50 개의 고유 ID가 있지만 단일 ID = 'retweets'가 50 번 렌더링 된 것은 JQuery 스크립트가 모두 단일 값으로 취급한다는 것을 의미합니다. 그것이해야하는대로 일하고 있습니다, 나는 단지 그것이 할 수없는 일을 할 것이라고 기대하고 있습니다. 내 질문은 삭제하겠습니다. 어쨌든 나는 어리 석음으로써 사람들을 성가 시게한다고 생각합니다. –

관련 문제