2015-06-08 118 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"; 
    }