gpt4 book ai didi

php - 如何在彩色框中使用 php ajax 表单?

转载 作者:行者123 更新时间:2023-11-28 09:01:17 24 4
gpt4 key购买 nike

我在(login.php)中有一个登录表单。它通过ajax调用单独的sample.php,sample.php返回值,Javascript将根据php返回值显示相关消息。它在普通网页中运行得很好。但是当我在颜色框中显示表单时(在 test.php 中)。 javascript/jquery 无法运行。我通过使用ajaxform对此进行了一些研究,但是我到底该怎么做呢?请告诉我一些关键字,以便我进一步研究:(,我被困住了。

测试.php:

$(".ajax").colorbox();
<a href="" class=ajax>Login</a>

这是我的ajax函数:

function login()
{
hideshow('loading',1);
error(0);

$.ajax({
type: "POST",
url: "http://utourpia.me/php/login_submit.php",
data: $('#loginForm').serialize(),
dataType: "json",
success: function(msg){

if(!(msg.status))
{
error(1,msg.txt);
}
else location.replace(msg.txt);

hideshow('loading',0);
}
});
}

这是我的 jQuery:

$('#loginForm').submit(function(e) {
login();
e.preventDefault();
});

这是我的表格:

<form id=loginForm method=post action="">

<label for=email class=email>Email:</label>
<input name=email type=text size=20 maxlength=40/>

<label for="password" class="password">Password:</label>
<input name="password" type="password" size="20" maxlength="40" />

<input class="login" type="submit" name="submit" value="Login" />
</form>

<div id="error"></div>

login_submit.php

<?php
require_once('../lib/connections/db.php');
include('../lib/functions/functions.php');
session_start();
$location_id = $_SESSION['location_id'];

$email = $_POST['email'];

$query = mysql_query('SELECT username FROM users WHERE email = "'.secureInput($email).'"') or die (mysql_error());

if(mysql_num_rows($query) == 1)
{
$row = mysql_fetch_assoc($query);
$username = $row['username'];
}

$returnURL1 = 'http://utourpia.me/php/places.php?id='.$location_id.'&username='.$username;
$returnURL2 = 'http://utourpia.me/php/myprofile.php?username='.$username;
$returnURL3 = 'http://utourpia.me';
$returnURL4 = 'http://utourpia.me/php/dreamtrip.php';

//For login

// we check if everything is filled in and perform checks

if(!$_POST['email'] || !$_POST['password'])
{
die(msg(0,"Email and / or password fields empty!"));
}

else
{
$res = login($_POST['email'],$_POST['password'],$username);
if ($res == 1){
die(msg(0,"Email and / or password incorrect!"));
}
if ($res == 2){
die(msg(0,"Sorry! Your account has been suspended!"));
}
if ($res == 3){
die(msg(0,"Sorry! Your account has not been activated. Please check your email's inbox or spam folder for a link to activate your account."));
}
if ($res == 99){

if ($_SESSION['login_submit']=="places.php")
{
echo(msg(1,$returnURL1));
}
else if ($_SESSION['login_submit']=="myprofile.php")
{
echo(msg(1,$returnURL2));
}
else if ($_SESSION['login_submit']=="home.php")
{
echo(msg(1,$returnURL3));
}
else if ($_SESSION['login_submit']=="dreamtrip.php")
{
echo(msg(1,$returnURL4));
}
}
}

function msg($status,$txt)
{
return '{"status":'.$status.',"txt":"'.$txt.'"}';
}

?>

最佳答案

  1. 首先需要在表单标记中更改:

    赖特仅上面的代码。因为您已经给出了方法和 URL,这就是它刷新页面的原因。

  2. 替换您的 jquery 代码 $('#loginForm').submit(function(e) { 此代码替换为 $('.login').click(function (e) {.

  3. 为什么在ajax成功函数中使用replace方法会出现错误。删除其他部分。

  4. 位置对象没有替换方法。如果您想在成功时重定向到用户,请使用 location.href="your link";

进行这些更改然后检查。

关于php - 如何在彩色框中使用 php ajax 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com