2012-08-31 63 views
0

我试图将'值'传递给'prova.php'页面,以便动态地进行mysql查询。但是这不起作用..我应该添加什么?所有php开放标签下的东西都必须是动态的:不加载页面。这里是我的prova.php文件的代码:发送jQuery值到PHP

<!DOCTYPE html> 
    <html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
    </head> 
    <body> 

     <div id="single"> 
     <input type="text" value="test test"/><br /> 
    </div> 
    <p></p> 

    <div id="fo">focusout fire</div> 
    <div id="b">blur fire</div> 

    <script> 

    var fo = 0, b = 0; 
    $("#single").focusout(function(e) { 
     fo++; 
     $("#fo") 
     .text("focusout fired: " + fo + "x"); 
     var value = (e.target.value); 
     alert(value); 

    $.ajax({ 
     type: "POST", 
     url: "prova.php", 
     data: { temp: value } 
    }) 
    /*$.ajax({ 
      url: 'prova.php', 
      type: 'POST', 
      data : "temp = 100", 
      success: function(data) { 
      alert('Load was performed.'); 
      } 
     });*/ 
    }) 

    </script> 
    <?php 
    $link = mysql_connect('localhost', 'root', ''); 
    if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
    } 
    echo 'Connected successfully'; 
    mysql_select_db("test"); 
    //if(isset($_POST['id'])) 
    $value=$_POST['temp']; 
    echo $_POST['temp']; 
    $sql=mysql_query("SELECT * FROM articles WHERE id='$value'"); 
    if(!$sql) 
    echo"ERROR: Invalid Query!"; 
    $row=mysql_fetch_array($sql); 
    $articleText=$row["text"]; 
    echo$articleText; 

    ?> 
    </body> 
    </html> 
我已经搜索了使用jQuery的GET和POST的API,但没有结果

。我认为我应该在ajax下添加更多的东西,但我不知道是什么! php代码应该在ajax下执行,但我对ajax和jquery不是很保密:我第一次使用它们。

+0

您可以添加AJAX的另一件事是成功的功能,将告诉你的状态你的结果 –

+0

你没有对从ajax调用返回的值做任何事情。它可能工作,但你不会看到它。如果您使用firebug for firefox或safari/chrome中的开发人员工具,您可以在“Net”视图中看到XHR请求,并观察ajax调用是否至少有效。 –

+0

我会避免价值作为变量的名称,以防万一。您是否观看过Firebug或其他工具中AJAX请求的请求/响应周期?你会得到很多反馈。 –

回答

0

首先你发送的参数是错误的。你必须发送一个JavaScript对象格式(键:值对):

$.post("prova.php" ,{ 
    temp: 100 
},function(data){ 
//data "echo"-ed from script      
}); 

服务器端:

$data=$_POST['temp']; 
//do your stuff 
echo 'done'; 
+0

我建议在PHP部分不要直接访问POST数据而不检查 - 如果存在:) – h4cky

+0

使用JSON会更好地发送数据。 –

+1

@ilia可以这样发送tat。如果你有1-2个属性。但对于大量数据收集,JSON更适合您的方式。主要问题是他没有检查$ _POST数组中是否存在此键:) – h4cky