请耐心等待;我尽力学习更多Ajax。我正在尝试验证我的表单中的“事件名称”字段是否已存在于我的表中,但仅当两者都是由同一用户创建时。例如,如果用户1已经有一个名为Event1的事件,则验证将检查User1下是否存在重复的事件名称。
我有以下PHP / HTML格式的片段:
<div>Event Name: </div>
<input type="text" name="eventname" id="eventname" onblur="checkeventname()" onkeyup="restrict('eventname')" size="50" maxlength="75" />
<span id="eventnamestatus"></span>
这是我的checkeventname函数:
function checkeventname(){
var nameofevent = _("eventname").value;
if(nameofevent != ""){
_("eventnamestatus").innerHTML = 'checking ...';
var ajax = ajaxObj("POST", "eventcreationpage.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
_("eventnamestatus").innerHTML = ajax.responseText;
}
}
ajax.send("usernamecheck="+nameofevent);
}
}
这是我放在页面顶部的Ajax,我遇到了麻烦:
<?php
// Ajax calls this NAME CHECK code to execute
if(isset($_POST["eventnamecheck"])){
include_once("php_includes/db_conx.php");
$eventname = preg_replace('#[^a-z0-9]#i', '', $_POST['eventname']);
$sql = "SELECT id FROM users WHERE eventname='$eventname' && eventcreator='$eventcreator' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$eventname_check = mysqli_num_rows($query);
if ($eventname_check < 1) {
echo '<strong style="color:#009900;">' . $eventname . ' is not a duplicate name</strong>';
exit();
} else {
echo '<strong style="color:#F00;">' . $eventname . ' is an event name already under your name</strong>';
exit();
}
}
?>
网页本身有用户变量(eventcreationpage.php $ eventcreator = User1)我试图通过$ eventcreator变量发送,在这种情况下是用户,但我不太确定怎么做。
答案 0 :(得分:2)
集
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
表明此请求将发送表单数据。接下来,在您的服务器上,如果您通过
指定了用户ID,则可以使用$ _POST [“userid”]来获取用户IDajax.send("userid=" + userid);
要发送userid和eventid,您可以使用
ajax.send("userid=" + userid + "&eventid=" + eventid);
如果仅从PHP获取用户标识,则可以将其呈现为脚本。这看起来像这样:
ajax.send("userid=<?php echo $eventcreator; ?>&eventid=" + eventid);
将用户名称注入字符串。但是,如果您允许使用特殊字符作为用户名,请确保它已正确转义。