到目前为止,我一直在尝试Pjax并喜欢它。它运作良好,但我遇到了一个问题。当使用pjax提交表单(post)时,一切正常,但我在错误日志中收到“PHP Notice:Undefined index:name”。
以下是我提交表单的代码:
$(document).on('submit', 'form[data-pjax]', function(event) {
event.preventDefault();
$.pjax.submit(event, '#containercontainer');
return false;
});
我已经包含了所有必需的.js文件,但为了简单起见,这里没有。
这是我的表格的删节版本:
<form data-pjax method="POST" action="add-process.php" id="addform">
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" placeholder="Name" name="name" autocomplete="off" autofocus>
</div>
</div>
...
</div>
<button id="submit_btn" type="submit" class="btn btn-success btn-block" style="font-weight:bold;">ADD</button>
</form>
在add-process.php文件中,我使用$ name = $ _POST ['name']获取变量; 但错误日志表示这些行的未定义索引。
更新:
我更改了我的PHP代码以包含推荐的isset(),如下所示:
// GET INFO FROM FORM
if(isset($_POST['userID'])) {
$userID = $_POST['userID'];
}
if(isset($_POST['reason'])) {
$reason = $_POST['reason'];
}
if(isset($_POST['otherreason'])) {
$otherreason = $_POST['otherreason'];
}
if($reason == 3) {
$reason = $otherreason;
}
if(!is_numeric($userID)) {
echo 'User ID not numeric!';
exit();
}
修复了一些问题,但我仍然在日志中遇到错误:
PHP Notice: Undefined variable: reason
PHP Notice: Undefined variable: userID
再次,谢谢你的帮助!
答案 0 :(得分:0)
你得到了
PHP Notice: Undefined variable: reason
PHP Notice: Undefined variable: userID
因为你的isset($ _ POST [&#39; userID&#39;])和isset($ _ POST [&#39; reason&#39;])返回false,因为它们不存在。这就是你的变量未定义的原因。您可以添加&#34;默认&#34;值。
您可以跟踪表单发送到服务器端的内容。试试这个:
print_r($_POST);
或
print_r($_REQUEST);
关于形式:检查输入的名称。输入名称为&#39; userID&#39;和&#39;原因&#39;存在?
答案 1 :(得分:0)
任何时候在条件语句中设置变量,最好先将它们初始化:
$reason = null;
$userID = false;
/* .... your current code starts here */
PHP抛出通知以帮助您避免错字引发的错误(即稍后引用uesrID等)。首先初始化它们可以清楚地表明您实际上正在使用您想要的名称。