2011-03-29 31 views
0

嘿,夥計們。 我正在使用jQuery ajax函數從窗體發送數據並返回一些結果。用jQuery Ajax返回多個數據庫重試

function get(){ 
    $.post('data.php', { name: $('#name').attr('value'),lname: $('#lname').attr('value') }, 
      function (data){ 

       $('#age').html(data).show(); 

      }); 
    } 

該函數發佈到data.php。

$name = $_POST['name']; 
$lname = $_POST['lname']; 

    //DB connect 
    mysql_connect('localhost', 'root', 'password') 
    or die("Could not connect: " . mysql_error()); 
    //DB select   
    mysql_select_db("users") 
    or die("Could not find database: " . mysql_error()); 


    $sql="SELECT * FROM users WHERE name='$name'"; 
    $result=mysql_query($sql)or die(mysql_error()); 

    $row = mysql_fetch_array($result); 

    $return_name =$row['name'];  //set the session for the user login 
    $return_lname =$row['lname']; 
    $return_age =$row['age']; 

    echo $return_name; 
    echo $return_lname; 
    echo $return_age; 

輸出全部顯示在#age div,但我想能夠指定每個三個輸出到不同的div?

謝謝你們。

回答

1

您可能會發現使用PHP的JSON functions有幫助。這將允許您使用jQuery來更新適當的DIV。

您的jQuery的可能是這個樣子:

var name = $("#name").val(); // May help to set variables first. 
var lname = $("#lname").val(); 

$.post("data.php", 
     {name: name, lname: lname }, 
     function(data) { 
      $("div#name").html(data.name); 
      $("div#lname").html(data.lname); 
      $("div#age").html(data.age); 
     }, "json"); 

你的PHP可能是這個樣子:

$sql="SELECT * FROM users WHERE name='$name'"; 
$result=mysql_query($sql)or die(mysql_error()); 

$row = mysql_fetch_array($result); 

$return['name'] = $row['name'];  //set the session for the user login 
$return['lname'] = $row['lname']; 
$return['age'] = $row['age']; 

echo json_encode($return); 
2

首先,您可以使用val函數從表單元素檢索值。例如,而不是$('#name').attr('value');可以使用$('#name').val();

其次,以操縱從data.php腳本接收到的數據,我建議使用PHP JSON之類的函數json_encode,就像這樣:

//DB connect mysql_connect('localhost', 'root', 'password') 
or die("Could not connect: " . mysql_error()); //DB select 
mysql_select_db("users") or die("Could not find database: " . mysql_error()); 

$sql="SELECT * FROM users WHERE name='$name'"; 
$result=mysql_query($sql)or die(mysql_error()); 

$row = mysql_fetch_array($result); 

// encoding array in json format and printing it... 
echo json_encode(array("name"=>$row["name"], "lname"=>$row["lname"], "age"=>$row["age"])); 

三,你可以操縱這樣的迴應:

function get(){ $.post('data.php', { name: $('#name').attr('value'),lname: $('#lname').attr('value') }, function (data){ 
      $('#div1').html(data.name).show(); 
      $('#div2').html(data.lname).show(); 
      $('#div1').html(data.age).show(); 
     }); 
} 
0

有你的PHP腳本,數據庫返回JSON和使用你的JavaScript成功函數將結果插入到一個DOM希望的。以下是如何請求,生成和處理JSON結果的示例:

<?php 
$results = array(); 
if ($_REQUEST['arg1']) { $results['res1'] = strtoupper($_REQUEST['arg1']); } 
if ($_REQUEST['arg2']) { $results['res2'] = strtoupper($_REQUEST['arg2']); } 
if (count($results) > 0) { echo json_encode($results); } 
else { ?> 
<html> 
<head> 
<title>example</title> 
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#go').click(function() { 
      $.post('test.php', { arg1: 'homer', arg2: 'marge' }, function (data) { 
       $('#one').text(data.res1); 
       $('#two').html(data.res2); 
      }, 'json'); 
     }); 
    }); 
</script> 
</head> 
<body> 
<div id="one">bart</div> 
<div id="two">lisa</div> 
<a id="go" href="#"`>go</a> 
</body> 
</html> 
<?php }