簡體   English   中英

將這些腳本結合在一起使用,可以使用Javascript / AJAX和PHP

[英]Combine these scripts to work together, Javascript/AJAX and PHP

我正在學習這里涉及的所有語言,目前正努力將兩個腳本結合起來完成一個任務。

我希望能夠從表單選項列表中選擇一個分支,將該值從選項發送到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是“未定義索引”,並且腳本失敗。 由於變量為空,我無法查詢數據庫。

有人能指出我正確的方向,因為我現在有點困惑了。

提前加油

的Blinky

如果您在此行上遇到錯誤

$ branch = $ _GET ['branchGet'];

這意味着未設置GET變量,因此$ _GET數組中不存在該變量的索引,PHP將其提供為GET變量的資源。

獲取變量始終編碼在URL中。 URL的分支?branchGet = somevalue。 除非有一些代碼尚未發布,否則$ _GET變量包含任何內容。

  1. 在瀏覽器中打開開發人員工具,然后查看XHR請求。 驗證發布到php腳本的URL是否以Bookings.php?branchGet = something結尾。如果存在,則錯誤在PHP端。 如果不是,那是在jQuery方面。

  2. 我真的看不到PHP上可能出了什么問題,但是該錯誤表明請求URL缺少?branchGet = URL中的某些內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM