2013-12-18 35 views
0

我必須創建一種方法從我的數據庫中獲取SpellMin和SpellMax,並且我嘗試了各種方法而沒有成功,這是我最近的嘗試。 有沒有人有任何的見解,我怎麼能得到這個工作,我認爲這會導致一個錯誤,導致所有進行腳本不運行。查詢數據庫按鈕單擊中間形式

<script type="text/javascript"> 

    function CheckCast() 
    { 
     <?php 

      $q10 = mysql_query("SELECT SpellMin, SpellMax FROM SpellsTable WHERE SpellName = {$_POST['mydropdown']};"); 
      if (!$q10) die (mysql_error()); 
      $minmax = mysql_fetch_array($q10); 
      $_SESSION['SpellMin'] = $minmax["SpellMin"]; 
      $_SESSION['SpellMax'] = $minmax["SpellMax"]; 

     ?> 

     var y = <?php echo json_encode($_SESSION['char']->Wisdom);?>; 
     var x; 
     x=Math.floor(Math.random()*99); 
     a = <?php echo json_encode($_SESSION['SpellMin']);?>; 
     b = <?php echo json_encode($_SESSION['SpellMax']);?>; 
     var c; 
     c=Math.floor(Math.random() * (parseInt(b) - parseInt(a) + 1)) + parseInt(a); 

     if (x <= y) 
     { 
      alert("Spell Cast" + ' ' + c); 

     } 
     else 
     { 
      alert("Spell Failed"); 
     } 
    } 

</script> 

我試圖使用AJAX以及與此

<script> 

    $(document).ready(function() { 
     $('#dropdown').change(function() { 
      $.ajax({ 
       type: 'GET', 
       url: 'getMinMax.php', 
       data: 'ddb=' + $_POST['mydropdown'].val() 
       }); 

     }); 
    }); 


</script> 

調用幾乎除了相同的MYSQL聲明想出了:

$q10 = mysql_query("SELECT SpellMin, SpellMax FROM SpellsTable WHERE SpellName = {$_GET['ddb']};"); 

這是正確的還是我做錯了?

+0

您需要使用AJAX這個 –

+0

沒有理由有PHP模塊做javascript函數內部查詢瞭解更多關於AJAX。 「我認爲這會導致一個錯誤」......好的,錯誤是什麼? –

+0

它沒有顯示錯誤,它只是在查詢之後不運行任何JavaScript代碼,除非我將它註釋掉。 –

回答

0

你不能單獨使用jQuery,因爲Javascript是一種客戶端語言,並且php在服務器上運行。您的PHP在您的腳本塊內執行的所有操作都是在頁面加載時回顯,而不是在方法的運行時回顯。

但是,您可以使用中介,AJAX(異步Javascript和XML),它向服務器發送請求,並可用於執行您想要的操作。

您可以在jQuery website

+0

我認爲他奇怪的編碼風格已經拋棄了你。他在這裏嘗試的內容沒有任何內在的錯誤,並且不需要jquery/ajax。 PHP構建了發送給客戶端並運行它的javascript函數。現在,讓我假設的代碼是圍繞所有這些可能需要jQuery/ajax的遊戲...... –

+0

我不這麼認爲,因爲標題說中間形式。但我可能是錯的。這是有點不清楚 – scrblnrd3

+0

是的,這是一個很好的觀點;我很困惑。 –