数据库中的异步请求

时间:2013-07-24 07:04:57

标签: php sql ajax

有一个代码:

<form name="step1" action="step2.php" method="POST">
Email: <input type="text" name="email" class="input-medium">
<button class="btn btn-small btn-warning" type="submit">Check</button> 
</form>

那: step2.php

<?php
$email = $_POST['email'];
$result = mysql_query("SELECT email,discount FROM buyers WHERE email='$email'");
if (mysql_num_rows($result) <= 0)
{
echo "Are you a new client is't it? <br>";
echo "Your discount is 0%<br>";
}
else{
echo "<br/>Nice to see you again! <br/>";
$getSalary = mysql_fetch_array($result); 
echo "You discount is already: ";
echo $getSalary[discount];
echo " %";
}
?>

那么,是否可以在不提交表单的情况下在数据库中获取请求并重定向到新页面(本例中为step2.php)? 我的意思是,查询结果立即显示.. 我想一下onBlur()方法,但我不知道如何用JavaScript创建类似的请求。 也许用AJAX可以吗?

如果有任何建议,我将不胜感激。很多。

3 个答案:

答案 0 :(得分:0)

我想这就是你想要实现的目标

<form name="step1" action="step2.php" method="POST" onsubmit = "return postFormAsynchronous(this)" >
Email: <input type="text" name="email" class="input-medium">
<button class="btn btn-small btn-warning" type="submit">Check</button> 
</form>

然后在javascript中放置此功能

function postFormAsynchronous(frm) {
    frm = $(frm);
    $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function (data, status, xhr) {

       //your data from server will appear in data then do what ever with it

        }
    });

    return false;
}

这将使用发布数据电子邮件对您的给定操作php脚本进行ajax调用

在服务器上,您可以继续使用现有代码

    $email = $_POST['email'];
      ........
      ......

哦,是的,别忘了在你的html页面中包含Jquery。

快乐的编码:)

答案 1 :(得分:0)

是的,您可以通过在模糊上调用ajax函数或通过验证提交来执行操作,并且在您从ajax获得响应之前不要提交表单。

例如,当您单击提交时,请调用函数

<code>
onsubmit = "return Validate()"
</code>

在验证功能中,将ajax请求发送到其他页面,并根据您当前电子邮件字段中的值执行所需操作。您可以使用jquery或javascript获取电子邮件字段的值。

<code>
     document.getElementById('email-field-id').value;
</code>

<code>
     $('#email-field-id').val();
</code>

答案 2 :(得分:0)

<head>

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script>
function jqAjaxForm(data2send, file2send, dataConteiner) { 

    if(data2send.indexOf("#") != -1){
        data2send = jQuery(data2send).serialize();
    }

    jQuery(dataConteiner).html("<option>Loading...</option>");
    jQuery.ajax({
        type    : "POST",
        url     : file2send,
        data    : data2send,
        success : function(data){ jQuery(dataConteiner).html(data); },
        error   : function(data){ jQuery(dataConteiner).html(data); },
        cache   : false
    });

}
</script>

而不是你的身体

<body>
    <div id="target"><div>
    <form name="step1" action="step2.php" method="POST" id="form">
        Email: <input type="text" name="email" class="input-medium">
        <button class="btn btn-small btn-warning" type="submit" on click = "jqAjaxForm('#form', 'step2.php','#target')">Check</button> 
    </form>
</body>