gpt4 book ai didi

php - javascript验证数据库中的表单值

转载 作者:行者123 更新时间:2023-11-30 10:39:48 28 4
gpt4 key购买 nike

以下代码用于创建广告系列。在创建之前,我必须验证表单。我必须验证数据库中是否已经存在的事件名称。我不知道我是否可以在 javascript 中使用 PHP 代码(如下所示)。无论如何它都不起作用。如何更改我的代码?如何使用数据库值验证值?

$this->campaign 是一个数组,其中包含来自数据库的所有事件详细信息。

<script type="text/JavaScript">
function validate()
{
var name = document.getElementById('name').value;
var shape = document.getElementById('shape').value;
<?
foreach($this->campaign as $c)
{
$old_cname=$c['name'];
?>
if(name==<?=$old_cname;?>)
{
alert("same name exists in database. Try again!");
}
<?
}
?>

if(!name)
{
alert("Please enter a name!");

return false;
}

if(!shape)
{
alert("Please select shape!");
return false;
}
return true;


}
</script>


<form action="create.php" method="post" onsubmit="return(validate());">
Name:
<input type="text" name="name" id="name"/>
Shape:
<select name="shape" id="shape">
<option value="long">Long</option>
<option value="tall">Tall</option>
</select>
<input type="submit" value="Create" name="submit"/>
</form>

谢谢!

最佳答案

你不能那样混合使用 php 和 javascript.. php 是一种服务器端语言,而 javascript 是客户端语言; php 在用户看到之前呈现页面,而 javascript 修改页面而不刷新。 js 中的任何 php 值都将在 js 执行之前呈现和输出。

为了完成您需要的操作,您需要使用 ajax,它是异步 javascript 和 xml,一种客户端-服务器通信方法,可以实现您想要的效果。

为此,我建议 jQuery ,一个使此类请求非常简单的 javascript 库。作为您如何在 jquery 中发出此类请求的示例....

jQuery.ajax()方法:

$.ajax({
url: "validate.php",
type: "POST",
data: "username=" + username,
sucesss: function(data) {
if (data == 1)
$("#ajax_div").html("Username is taken, choose another!");
}
else {
$("#ajax_div").html("Username is free :)");
}
}
});

这就是如何在 ajax 中执行此操作,而您的 php 文件将根据比较数据库中用户名的 sql 查询结果返回 1 或 0。

要在没有 jquery 的情况下做到这一点,它会是这样的:

function checkUsername() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.responseText == 1) {
document.getElementById('ajax_div').innerHTML = "Username is taken, please choose another!";
}
else {
document.getElementById('ajax_div').innerHTML = "Username is free :)";
}
}
}
xmlhttp.open("POST","validate.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("username=" + username);
}
}

关于php - javascript验证数据库中的表单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731761/

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