我正在学习这里涉及的所有语言,目前正努力将两个脚本结合起来完成一个任务。
我希望能够从表单选项列表中选择一个分支,将该值从选项发送到php脚本以查询数据库。然后,将从数据库返回的信息用于使用第二个脚本加载的页面上。
jQuery / AJAX脚本一个-当前用于使用从用户选择中收集的值将php页面加载到DIV中。
<script>
$(document).ready(function(){
function loadBranch(branch) {
if (branch) {
$('div#content2').load('../../procedures/'+ branch +'/ClientCalls/' + branch + '-Bookings.php');
}
}
$('select[name=branch]').on('change', function() {
loadBranch($(this).val());
});
loadBranch($('select[name=branch]').val());
});
</script>
我尝试使用的第二个脚本填充先前脚本已加载的页面。
<script>
$(document).ready(function(){
$('select[name=branch]').on('change', function() {var branchGet = this.options[this.selectedIndex].value
console.log(branchGet);
$.ajax({
url: '../../procedures/'+ branchGet +'/ClientCalls/' + branchGet + '-Bookings.php',
data: {branchGet: branchGet},
type: 'GET',
dataType: 'json',
success: function(data)
{
if(data == 'success'){
location.reload();
}
}
});
});
});
</script>
第二个脚本也在发送信息的php页面。
<?php
$user = '';
$pass = '';
try {
$DBH = new PDO('mysql:host=localhost;dbname=nightlineDB;', $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$branch = $_GET['branchGet'];
$true = 1;
$contactList = $DBH->prepare('SELECT contactName, contactNumber FROM branchcontact WHERE branch = ? AND inUse = ?');
$contactList->execute(array($branch, $true));
$contactResult = $contactList->fetchAll(PDO::FETCH_ASSOC);
<div><p><h4>First Contact</h4> <?php echo $contactResult['0']['contactName'] ." ".$contactResult['0']['contactNumber'] ?></p></div>
$success = 'success';
echo json_encode($success);
}
catch(Exception $e) {
echo 'Error: '.$e->getMessage();
}
?>
第二个脚本中的console.log显示已选择了正确的分支,但是,我收到一条错误消息,指出PHP文件中的branchGet是“未定义索引”,并且脚本失败。由于变量为空,我无法查询数据库。
有人能指出我正确的方向,因为我现在有点困惑了。
提前加油
眨眼
最佳答案
如果您在此行上遇到错误
$ branch = $ _GET ['branchGet'];
这意味着未设置GET变量,因此$ _GET数组中不存在该变量的索引,PHP将其提供为GET变量的资源。
获取变量始终编码在URL中。分支
URL的branchGet = somevalue。除非有一些代码尚未发布,否则$ _GET变量包含任何内容。
在浏览器中打开开发人员工具,然后查看XHR请求。验证发布到php脚本的URL是否以Bookings.php?branchGet = something结尾
如果是这样,则错误是在PHP方面。如果不是,那是在jQuery方面。
我真的看不到PHP上可能出了什么问题,但是该错误表明请求URL缺少?branchGet = URL中的某些内容。