2015-06-08 161 views
0

你好我試着從服務器使用ajax加載數據。這是我的jsajax從mysql加載數據

<script> 
jQuery(document).ready(function($){ 
$("#mc-prize").click(function(){ 
event.preventDefault(); 
$.ajax({ 
      url: "includes/prize.php", 
      type: "GET", 
      datatype: "text", 
      data: {"num": num}, 
      cache: false, 
      success: function(response){ 
       $("#some-block").append(response); 
     } 
     }); 
}); 
}); 
</script> 

這裏是我的prize.php文件

<?php 
$host = '#'; 
$user = '#'; 
$password = '#'; 


if (isset($_POST['submit'])){ 
    $prize_email = $_POST['email']; 
    $mysqli = new mysqli($host, $user, $password, $user); 
    $result = $mysqli->query("SELECT * FROM prize_numbers WHERE email = '" .$prize_email. "'") or die ("Couldn't connect to database."); 
    $row = $result->fetch_assoc(); 
    if($row['email']) { 
     echo "Your num: ".$row['num']; 
    } else { 
     echo "No email in db"; 
    } 

} 
?> 

但是當我試圖從DB我看到一個錯誤的一些數據: 「未捕獲的ReferenceError:num是不定義「

什麼錯?

UPD:抱歉什麼是我的PHP正確的JS?我需要在數據中放置什麼?

+0

NUM在JS沒有定義 –

+0

首先,您要發送的GET方法的AJAX技術,並試圖趕上POST數據,在PHP中,所以決定要使用 –

回答

1

你的問題是不是在你的PHP,但在js代碼 這個代碼

data: {"num": num}, 

的變量num沒有在js代碼的任何地方定義

嘗試使用此代碼:

<script> 
jQuery(document).ready(function($){ 
$("#mc-prize").click(function(){ 
var some_email = ''; // DEFINE HERE THE EMAIL YOU WANT TO SEND 
event.preventDefault(); 
$.ajax({ 
      url: "includes/prize.php", 
      type: "POST", 
      datatype: "text", 
      data: {"email": some_email,"submit": 1}, 
      cache: false, 
      success: function(response){ 
       $("#some-block").append(response); 
     } 
     }); 
}); 
}); 
</script> 
+0

一年,我明白哪種方法。但是,什麼是正確的JS我的PHP? – n1zee

+0

我建議使用簡寫$ .post(url,{data-in-JSON格式},回調函數),這在大多數情況下更容易,因爲你不想讓所有這些特殊的東西都擔心 –

+0

var some_email ='';//定義這裏你想發送的電子郵件 對不起,但我想發送的電子郵件是從表格輸入電子郵件 我可以找到input.val()併發送它? – n1zee

0

您在JQuery中的數量未定義。 數據是您轉出的參數,響應是您作爲輸出獲得的結果。 只需將此行代碼 data: {"num": num},data: "email="+email_var替換並添加實施變量email_var(例如:var email_var = "[email protected]")。

UPD:通過電子郵件,以便您可以在PHP中檢查它。

if (isset($_POST['email'])){ 
    $prize_email = $_POST['email']; 
    $mysqli = new mysqli($host, $user, $password, $user); 
    $result = $mysqli->query("SELECT * FROM prize_numbers WHERE email = '" .$prize_email. "'") or die ("Couldn't connect to database."); 
    $row = $result->fetch_assoc(); 
    if($row['email']) { 
     echo "Your num: ".$row['num']; 
    } else { 
     echo "No email in db"; 
    }