【问题标题】:AJAX and/or JQUERY form POST?AJAX 和/或 JQUERY 表单 POST?
【发布时间】:2009-09-06 15:25:39
【问题描述】:

您好,Web 编程大师们, 在这里我提出另一个愚蠢的问题,希望有人能回答我。我在 AJAX 编程方面不是很好,但由于某些情况,我必须构建一个完全不可刷新的站点。 下一个问题是如何让这个表单发送请求并返回结果,而不重新加载当前页面?

    <?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 文件。我将它包含在我的不可刷新站点中,但是当我按下提交按钮时,它会刷新整个当前页面,然后显示预定义的回显。

【问题讨论】:

  • 你已经在别处使用 jQuery 了吗?
  • 是的,我的整个网站都在 Jquery 中。

标签: php ajax forms


【解决方案1】:

使用简单的按钮并将 ajax 事件绑定到它,而不是提交。这是一个粗略的例子。

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

       });
     }); 

【讨论】:

  • 可以是任何接受ajax请求并触发响应的url。
【解决方案2】:

当我开始做一些 ajaxing 时,这对我有很大帮助:

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

【讨论】:

    【解决方案3】:

    听起来你需要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); 
    } 
    

    【讨论】:

    • 这个插件没问题,他发布了我需要的内容,但是如何让他从我的表单中返回结果?
    • 查看代码示例选项卡。有一个选项可以传递回调以对响应执行您想要的操作。我编辑了我的答案以显示我直接从代码示例中获取的示例。
    【解决方案4】:

    所有解决方案都不适用于我的情况。要么他们不 POST 到服务器,要么我不能让他们显示来自服务器的回复,正如你所看到的,它在同一个文件中

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

    所以在这种情况下,任何人都可以告诉我如何只重新加载包含此文件的 div,单击提交按钮? 或者任何其他解决方案都将受到欢迎......

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多