php
  • jquery
  • 2012-04-07 2 views -1 likes 
    -1

    내 페이지의 모든 div의 ID를 archive 클래스로 가져 와서 MySQL 쿼리에 넣어서 ID가 데이터베이스에 저장되어 있는지 확인하고 싶습니다. $div = $(this).attr('id');DIV ID를 PHP 변수에 넣기

    그럼 내가 확인하기 위해 루프를 던질 것입니다 :

    $matches = mysql_query("SELECT * FROM content WHERE `div` = '$div'"); 
         while ($post = mysql_fetch_assoc($matches)) 
         { 
          if (mysql_num_rows($matches) > 0) 
          { 
           //DO THIS 
          } 
         } 
    

    UPDATE

    을 내가 AJAX이 코드가

    그래서 기본적으로 나는이 작업을 수행 할 수있는 방법 궁금 지금 :

    $('div.heriyah').each(function() { 
    var curID = $(this).attr('id'); 
    $.post("admin/btnCheck.php", { div : curID }, function(data) { 
    if (data == "yes") { 
        $('#' + curID).html('<div class=\"add\"><div id=\"add_button_container\"><div id=\"add_button\" class=\"edit_links\"> + Add Element</div></div></div><div class=\"clear\"></div></div>'); 
    } else { 
        $('#' + curID).html('<div class=\"add\"><div id=\"add_button_container\"><div id=\"add_button\" class=\"edit_links\"> + Set As Editable Region</div></div></div><div class=\"clear\"></div></div>'); 
    } 
        }); 
    }); 
    

    그리고 PHP :

    $matches = mysql_query("SELECT * FROM content WHERE `div` = '".$_POST['div']."'"); 
    if (mysql_num_rows($matches) > 0) 
    { 
        echo "yes"; 
    } else { 
        echo "no"; 
    } 
    

    내가 뭘 잘못하고 있니?

    +2

    '

    http://bobby-tables.com
    ' –

    답변

    2

    자바 스크립트 변수를 PHP 스크립트에 던질 수 없습니다. 당신은 페이지

    $div = $(this).attr('id'); 
    $.post("yourquerypage.php", { divid : $div }, function(data) { 
        // Something to do when the php runs successfully 
    }); 
    

    다음에 아약스 요청을 보내야합니다) ($ _POST에서 변수를 얻을 수

    $matches = mysql_query("SELECT * FROM content WHERE `div` = '".$_POST['divid']."'"); 
    

    물론, 당신은 주입을위한 조치를 취할 필요가 당신의 쿼리를 구성합니다.

    +0

    고마워요! 당신은 정말로 도움이되었습니다! 주사를 예방하기위한 나의 질문을 수정해야합니다! – drummer392

    +0

    아직 AJAX에 조금 익숙하지 않지만 if/else 형식으로 일치하는 데이터가 데이터베이스에 있는지 확인하기 위해 콜백 함수를 확인하고 설정하는 방법이 있습니다. – drummer392

    +1

    @ drummer392, 위의 코드에서 볼 수 있듯이'function (data) {}'는 콜 백백 함수이고,'data'는 PHP 페이지에 에코 된 모든 것을 담고 있습니다. – Starx

    0

    간단한 구문 오류입니다. else 이후의 상태를 제거하면 괜찮을 것입니다.

    else (data == "yes") { // remove (data == "yes") 
        // snip 
    } 
    
    +0

    그래, 그랬지 만, 어떤 이유로 든 데이터가 아약스로 보내지거나 수신되지 않는다고 생각합니다. 나는 btnCheck.php 파일에 단순히'echo "no"; "를 넣기 만하면된다. 경로가 맞습니다! – drummer392

    +0

    사이트에 대한 링크를 게시하는 것이 더 쉬울 것이라고 생각합니다. 어떤 오류가 발생하고 있습니까? – rgin

    +0

    사이트가 슬프게도 관리자로 보호되어 있지만 방화 광에서 오류가 발생하지 않습니다. 그러나 내가 게시 한 코드가 정확하다는 것을 알려주고 있습니다 (게시 한 세그먼트를 스니핑하는 것 외에) – drummer392

    관련 문제