2013-09-03 5 views
0

PHP 페이지가 있습니다. abc.php라고합시다. jQuery/ajax를 사용하여 "var_post"변수를 abc_sql.php라는 다른 페이지에 게시했습니다. 그러나 불행히도 때로는 다음 페이지에서 변수를 얻는 경우가 있습니다. 뭐가 잘못 됐는지 알아?다른 PHP 페이지로 JQuery 변수 전달하기

abc.php 코드 조각 :

$(document).ready(function() { 

    var grand_total = 0; 

    $("input").live("change keyup", function() { 

     $("#Totalcost").val(function() { 

      var total = 0; 
      $("input:checked").each(function() { 

       total += parseInt($(this).val(), 10); 
      }); 
      var textVal = parseInt($("#min").val(), 10) || 0; 

      grand_total = total + textVal; 

      return grand_total; 
     }); 

    }); 
    $("#next").live('click', function() { 

     $.ajax({ 
      url: 'abc_sql.php', 
      type: 'POST', 
      data: { 
       var_post: grand_total 
      }, 
      success: function (data) { 
      } 
     }); 
    }); 
}); 

abc_sql.php :

$total = $_POST['var_post']; 
$sql = "INSERT INTO total_tab (total)VALUES('$total')"; 
if ($total > 0) { 
    $res = mysql_query($sql); 
} 
+12

** 위험 ** : 당신은 [** 오래된 ** 데이터베이스 API를 (사용 http://stackoverflow.com/q/12859942/19068

성공 콜백으로 이것을 시도) [현대 대체물] (http://php.net/manual/en/mysqlinfo.api.choosing.php)을 사용해야합니다. 또한 ** [SQL 주입 공격] (http://bobby-tables.com/) **에 현대적인 API를 사용하면 쉽게 방어 할 수 있습니다 ** (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)을 사용하십시오. – Quentin

+1

또한 jQuery 변수와 같은 것은 없습니다. jQuery는 JavaScript입니다. 재 : 때때로 값을 얻지 못하면 네트워크 로그를 참조하십시오. 요청과 함께 발송됩니까? – Utkanos

+0

이것을 시도하십시오. var total = = 0을 this로 바꿉니다. var total = $ (this) .val(); – Neelesh

답변

2

당신은 당신의 Ajax 호출에 빈 성공 콜백 있습니다. 서버에서받은 모든 것을 버리면됩니다. PHP로 인쇄 된 <script>은 절대로 브라우저에 의해 실행되지 않습니다. 왜냐하면 결코 그것을 DOM에 추가하지 않기 때문입니다.

success: function (data) { 
    $('<div></div>').html(data).appendTo($('body')); 
} 
관련 문제