gpt4 book ai didi

php - echo Javascript 出现在警报中而不是处理中

转载 作者:行者123 更新时间:2023-11-30 18:34:45 25 4
gpt4 key购买 nike

我创建了一个使用 AJAX 处理表单的注册系统,这样我就可以返回 false。相关的js是最上面的代码块。我将此数据传递给 join.php,后者将其发送到数据库。我在 join.php 中运行检查,以确保没有人使用重复的电子邮件注册。如您所见,如果电子邮件已经存在,我想使用 javascript 插入一条消息。它没有读取脚本标签,而是简单地将它们以明文形式粘贴到我的警报中……所以我的警报有数据字符串,然后实际上说代码 <script>...</script> .我怎样才能让这个 js 改为处理?

Javascript:

$(".submit").click(function() {  
var dataString = {
school : $("#school").val(),
studentEmail : $("#studentEmail").val(),
studentPassword : $("#studentPassword").val(),
parentEmail : $("#parentEmail").val(),
parentPassword : $("#parentPassword").val(),
studentFirstName : $("#studentFirstName").val(),
studentLastName : $("#studentLastName").val(),
studentPhone : $("#studentPhone").val(),
parentFirstName : $("#parentFirstName").val(),
parentLastName : $("#parentLastName").val(),
parentPhone : $("#parentPhone").val()
};
$.ajax({
type: "POST",
url: "join.php",
data: dataString,
success: function(data) {
alert ("data sent: "+ data);
}
});
return false;
}
});

加入.php

if($_POST) {
$school = mysql_real_escape_string($_POST['school']);
$studentEmail = mysql_real_escape_string($_POST['studentEmail']);
$parentEmail = mysql_real_escape_string($_POST['parentEmail']);
$studentFirstName = mysql_real_escape_string($_POST['studentFirstName']);
$studentLastName = mysql_real_escape_string($_POST['studentLastName']);
$studentPhone = mysql_real_escape_string($_POST['studentPhone']);
$parentFirstName = mysql_real_escape_string($_POST['parentFirstName']);
$parentLastName = mysql_real_escape_string($_POST['parentLastName']);
$parentPhone = mysql_real_escape_string($_POST['parentPhone']);

$check = mysql_query("SELECT studentEmail FROM clients WHERE studentEmail = '{$studentEmail}';");
$num = mysql_num_rows($check);


if (($num) == 0) {

$sql = "INSERT INTO clients ".
"(`studentEmail`, `studentPassword`, `parentEmail`, `parentPassword`, ".
"`studentFirstName`, `studentLastName`, `studentPhone`, `parentFirstName`, ".
"`parentLastName`, `parentPhone`, `school`) ".
" VALUES ('$studentEmail', '$studentPassword', '$parentEmail', ".
"'$parentPassword', '$studentFirstName', '$studentLastName', ".
"'$studentPhone', '$parentFirstName', '$parentLastName', '$parentPhone', '$school')";

$result = mysql_query($sql);
if ($result) {
echo "Database query successful!";
}
else {
die("Database query failed: " . mysql_error());
}

include "emails/signUp.php";
}
else {
echo 'FAIL

<script>
$(".formErrorMessage").html("Email already exists");
</script>';
}
}

最佳答案

警报显示您的脚本 block ,因为您已经在成功处理程序中获得了它:

alert ("data sent: "+ data);

数据将是您在 PHP 中输​​出的任何文本。如果您希望根据您的请求是否成功获得可变行为,我建议您的 PHP 返回包含成功标志和消息的 JSON。您的 JavaScript 回调将如下所示:

function(data) {
if (data.success) {
alert ("data sent: "+ data.message);
} else {
$(".formErrorMessage").text(data.message);
}
}

然后您的 PHP 应该将您的内容类型更改为 JSON:

header('Content-Type: application/json');

...你的 echo 会变成这样:

echo '{"success": false, "message": "Email already exists."}';

关于php - echo Javascript 出现在警报中而不是处理中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567753/

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