2012-04-02 3 views
0

나는 이런 식으로 표시 될 데이터가있다;체크 박스와 AJAX가있는 mysql에 추가

foreach ($holidays as $holiday) 
      { 
       $resultTable .= "<p><a href=\"{$holiday->link}\">{$holiday->title}</a>" . "<br/>" . 
       "{$holiday->pubDate}" . "<br>" . 
       "{$holiday->description}" . "<input type=\"checkbox\" name=\"saveCB\" value=\"3\"/>" . "<br /></p>";     

      } 

확인란을 클릭하고 데이터가 AJAX를 사용하여 MySQL의 테이블에 추가 될 수있는 쉬운 방법이 있나요?

감사 대런

+1

Javascript + Ajax가 문제를 해결해야합니다. –

답변

0
PHP가 온 클릭 이벤트가없는

, 당신이 (양식을 사용) .. 그런 일을 위해 자바 스크립트를 사용하거나 그래서 당신은 PHP로 값을 게시 할 수 있도록 할 것입니다, 그것은 것 가능한.

+0

아니요, 양식이 전체 페이지를 새로 고칩니다. 당신은 AJAX (http://en.wikipedia.org/wiki/Ajax_%28programming%29) – Bono

2

예 자바 스크립트가 필요합니다. 제출하는 양식에 만족하고 선택 상자가 변경 될 때마다 페이지가 새로 고쳐지는 경우 (즉, 확인/선택 취소) 꽤 쉽게 할 수 있습니다. 이것을 수락 할 수 없다면 아약스를 사용해야합니다. 그것은 당신의 최적의 솔루션이 될 것이고, 아약스처럼 쉽습니다. 미래의 프로젝트를 위해 도구 상자에 가지고 있으면 좋을 것입니다. 말했다

, 당신은 당신의 형태 id 속성을 제공함으로써이를 달성, 그냥 양식 아래에이 자바 스크립트를 붙여 넣기 (양식 아이디 VAR을 편집) 할 수 있습니다

<script type="text/javascript"> 
    var formId = "YOUR FORM ID HERE"; 
    function submitForm(){document.getElementById(formId).submit()} 
</script> 

그런 다음 각각에 다음 속성을 추가 확인란 : onchange="submitForm()".

이 유형의 물건에는 ajax를 사용하는 것이 좋습니다. jQuery ajax를 살펴보면이 작업을 얼마나 쉽게 수행 할 수 있는지 알게 될 것입니다.

편집 : 당신은 (교체) 실제로 기존의 코드에서이를 구현하기 위해 할 수있는 일 :

<form action="php-file-to-process-form.php" id="your-form-id" method="post"> 
    <?php if(count($holidays)>0): foreach($holidays as $holiday): ?> 
    <p> 
     <a href="<?php echo $holiday->link; ?>"><?php echo $holiday->title; ?></a> 
     <br> 
     <?php echo $holiday->description; ?> 
     <input type="checkbox" name="saveCB[<?php echo $holiday->id; ?>]" value="<?php echo $holiday->id; ?>"> 
    </p> 
    <?php endforeach; endif; ?> 
</form> 
<script type="text/javascript"> 
    var formId = "your-form-id"; 
    function submitForm(){document.getElementById(formId).submit()} 
</script> 

내가 코드의 일부를 다시 썼다 있습니다. 하지만이 경우, $ holiday 객체가 "id"속성을 가지고 있다고 가정하면 php-file-to-process-form.php는 상당히 이해하기 쉬운 게시 요청을 받아야합니다.

+0

과 같은 뭔가를 보내는 비동기 데이터를 사용해야 할 것입니다.이 말의 의미가 확실하지 않습니다. 문제? 양식이나 p 태그의 표시 모드에 약간의 CSS가 있다면 않는 한, 페이지가 어떻게 표시되는지에 영향을주지 않습니다. 렌더링에 문제가있는 경우 CSS 태그를 통해 양식 태그에'margin : 0; padding : 0;'을 추가하는 것이 좋습니다. –

+0

당신은 내가 감사를 의미하는 것을 정확하게 얻었습니다.하지만 휴가 ID가 없다면 어떨까요? –

0

양식 제출시 페이지 새로 고침을 피하려면 AJAX를 사용하는 것이 좋습니다. jquery를 사용하여 질문에 태그를 지정하지 않았지만 매우 좋습니다. 이 잘못된 가정이 될 수있는 모든 체크 박스에 같은 클릭 핸들러를 박았

$('input[type=checkbox]').click(function() { 
    if ($(this).is(':checked')) { 
     var name = $(this).attr('name'); 
     var value = $(this).val(); 
     $.post('/path/to/your/php/code', {name: value}, function(data){ 
      //Handle the result of your POST here with data containing whatever you echo back from PHP. 
     }); 
    } 
}); 

참고 : 여기 당신이 원하는 무엇을 jQuery를 예입니다. 이 로직을 사용하고 싶지 않은 폼에 다른 체크 박스가 있다면 jQuery 선택기를 'input [type = checkbox]'에서 특정 CSS가있는 입력과 같이 좀 더 제한적인 것으로 변경하면된다. 수업.

관련 문제