2009-09-06 70 views
0

嗨大師網絡編程, 在這裏我帶着另一個愚蠢的問題,希望有人會回答我。我並不擅長AJAX編程,但由於某些情況,我必須構建一個完全不可刷新的站點。 接下來的問題是如何使這個表單發送請求並返回結果,而無需重新加載當前頁面?AJAX和/或JQUERY表單POST?

<?PHP 

function mobio_checkcode($servID, $code, $debug=0) { 

    $res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code"); 

    $ret = 0; 
    if($res_lines) { 

     if(strstr("PAYBG=OK", $res_lines[0])) { 
      $ret = 1; 
     }else{ 
      if($debug) 
       echo $line."\n"; 
     } 
    }else{ 
     if($debug) 
      echo "Unable to connect to mobio.bg server.\n"; 
     $ret = 0; 
    } 

    return $ret; 
} 


$servID = 29; 
$code = $_REQUEST["code"]; 
$ok = $_REQUEST["ok"]; 

if($ok) { 
    if(mobio_checkcode($servID, $code, 0) == 1) { 
     echo "The SMS code is correct!"; 
    }else{ 
     echo "Wrong SMS code."; 
    } 
}else{ 
?> 



<form method="post" name="smscode"> 
SMS code: <input type="text" size="20" name="code"/> 
<input type="submit" name="ok" value=" Submit "/> 
</form> 
<?PHP } ?> 

此表格發送驗證SMS代碼的請求。這是這項服務的提供者給我的。但它是簡單的PHP文件。我將它包含在我的不可刷新網站中,但當按SUBMIT按鈕時,它會刷新整個當前頁面,然後顯示預定義的回顯。

+0

您是否已經在其他地方使用jQuery? – robjmills 2009-09-06 15:29:40

+0

是的,我的整個網站都在Jquery。 – Spoonk 2009-09-06 15:32:56

回答

0

所有解決方案都沒有我的情況下工作。他們要麼不張貼到服務器或我不能讓他們顯示來自服務器的應答,這正如你可能看到的是同一個文件

if($ok) { 
    if(mobio_checkcode($servID, $code, 0) == 1) { 
     echo "The SMS code is correct!"; 
    }else{ 
     echo "Wrong SMS code."; 
    } 

所以在這種情況下,內部的任何人都可以告訴我怎麼才重裝包含此文件的div包含在SUBMIT按鈕上單擊? 或任何其他解決方案將受到歡迎...

1

而不是提交使用簡單的按鈕和綁定AJAX事件給它。這是一個粗略的例子。

$(document).ready(function(){ 
     $("#btnId").click(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "test.js", 
      dataType: "script" 
     }); 

     }); 
    }); 
+0

和test.js裏面有什麼? – Spoonk 2009-09-06 15:36:30

+0

它可以是接受ajax請求並觸發響應的任何url。 – Sorantis 2009-09-06 16:34:30

+0

根本不工作,對不起... – Spoonk 2009-09-06 16:42:11

0

聽起來像你需要jquery form plugin

它會給你你所描述的行爲。

$(document).ready(function() { 
    var options = { 
     // other options left out 
     success:  showResponse // post-submit callback 
    }; 
    $('#myForm1').ajaxForm(options); 
}); 


// post-submit callback 
function showResponse(responseText, statusText) { 
    alert('response: ' + responseText); 
} 
+0

這個插件沒問題,他發佈我需要的東西,但是如何讓他從我的表單中返回結果? – Spoonk 2009-09-06 16:11:53

+0

查看代碼示例選項卡。有一個選項可以傳遞一個回調來做你想要的迴應。我編輯了我的答案,以顯示我從代碼示例中獲取的示例。 – jasonmw 2009-09-06 18:04:32