2011-04-13 102 views
0

我有一个表单发布数据,点击提交按钮时会调用一个AJAX函数,它应该获取PHP处理页面。但是在处理页面似乎没有得到所谓的或接收不贴代码data..the片段低于:PHP处理页面没有收到AJAX请求

//the form 


<form name="quicktransfer" action="" method="post"> 
<td style="width: 214px;padding-left: 5px;padding-right: 5px; cell-spacing:10px "> 
    <dl id='accService'> 
      <dt id='accHeader1'>Quick transfer</dt> 
     <dt class='accLinks1'>From.. </dt> 
    <dt class='accLinks1'> 
<!-- Creates a select drop down box with useres bank account numbers as the options --> 

<?php 
    $acc_tbl='accounts'; 
    $cust = $_SESSION['custno']; 
    $result = mysql_query("SELECT accountNo FROM $acc_tbl WHERE custNo = '$cust'"); 
    echo '<select name="acc_from">'; 
    echo "<option value=\" \"></option>"; 
    while($array = mysql_fetch_assoc($result)) 
    { 
    echo "<option value=\"{$array['accountNo']}\">{$array['accountNo']}</option>\n"; 
    } 
    echo '</select>'; 
?> 

<!-- end of the select drop down --> 

    </dt> 
     <dt class='accLinks1'>To... </dt> <dt class='accLinks1'> 

<!-- Creates a select drop down box with useres bank account numbers as the options --> 

<?php 
    $acc_tbl='accounts'; 
    $cust = $_SESSION['custno']; 
    $result = mysql_query("SELECT accountNo FROM $acc_tbl WHERE custNo = '$cust'"); 
    echo '<select name="acc_to">'; 

    echo "<option value=\" \"></option>"; 
    while($array = mysql_fetch_assoc($result)) 
    { 
    echo "<option value=\"{$array['accountNo']}\">{$array['accountNo']}</option>\n"; 
    } 
    echo '</select>'; 
?> 

<!-- end of the select drop down --> 

    </dt> 
    <dt class='accLinks1'>Amount.. </dt> 
    <dt class='accLinks1'><input type="input" name="amount" id="amount" size="10"/></dt> 
     <dt class='accLinks1'><input type="submit" name="transfer" value="transfer" onclick="loadQuickTransfer()"><br/><br/></dt> 
     </dl>  
    </form> 


//the AJAX script 


function loadQuickTransfer() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("QuickTransfer").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","quicktransfer.php",true); 
xmlhttp.send(); 
} 




// the form processing page getting called 


if(isset($_POST['transfer']) && $_POST['amount'] == "") 
{  
    echo '<b><i>Select account (From..To..)<br/><br/>Type amount to transfer.</i></b>'; 
} 
else 
{ 
    $transFrom = $_POST['acc_from']; 
    $transTo = $_POST['acc_to']; 
    $amount = $_POST['amount']; 
    $acc_tbl = 'accounts'; 
    $trans_tbl = 'transactions'; 
    $cust = $_SESSION['custno']; 

    $transfer = mysql_query("UPDATE $acc_tbl SET accountBalance = accountBalance -'$amount' WHERE custNo = '$cust' AND accountNo = '$transFrom'"); 
    if($transfer) 
    { 
     $transfer2 = mysql_query("UPDATE $acc_tbl SET accountBalance = accountBalance + '$amount' WHERE custNo = '$cust' AND accountNo = '$transTo'"); 
    } 
    else 
    { 

     echo '<b>Error.. Could not transfer<br/> Please try again!</b>'; 
     exit(); 

    } 
     if($transfer2) 
     { 

      echo '<b>Transfer complete..</b> '; 
      exit(); 
     } 

} 

回答

0

我只是快看,但似乎你从来没有发上XMLHttpRequest.send任何职务变量( )电话。

+0

我的印象是,自从我发布浏览器会携带POST数组中的变量,还是仅仅在使用窗体和PHP时? – kay 2011-04-13 23:26:38

+0

准确地说 - 你没有提交表单,而是发送一个自定义的http请求,所以你将不得不自己照顾它。 – weltraumpirat 2011-04-13 23:33:18

+0

而且,您正在使用该请求的“GET”方法。 – weltraumpirat 2011-04-13 23:34:31