2014-11-01 141 views
0

我正在學習所涉及的所有語言,並且正在努力將兩個腳本合併爲一個任務。將這些腳本結合在一起使用,Javascript/AJAX和PHP

我希望能夠從表單選項列表中選擇一個分支,將該值從選項發送到php腳本來查詢數據庫。然後從數據庫返回的信息將用於使用第二個腳本加載的頁面。

jquery/AJAX script one - 當前使用從用戶選擇中收集的值將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正顯示出已經選擇了正確的分支,但是,我得到一個錯誤陳述的branchGet在PHP文件和「未定義指數」和腳本失敗。由於變量是空的,我無法查詢數據庫。

難道有人請指出我正確的方向,因爲我現在有點困惑了。

乾杯提前,

的Blinky

回答

1

如果您在這條線得到一個錯誤

$分公司= $ _GET [ 'branchGet'];

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

獲取變量總是在URL中編碼。分支 ?branchGet =對URL的一些值。除非是你有沒有張貼一些代碼中,$ _ GET變量包含任何

  1. 打開開發者工具在瀏覽器中,並期待在XHR請求。驗證發佈到php腳本的URL以Bookings.php結尾?branchGet = something 如果是這樣,錯誤在PHP端。如果沒有,它是在jQuery的一面。

  2. 我真的不知道PHP上有什麼可能是錯誤的,但錯誤表明請求URL丟失了?branchGet = URL中的內容。

+0

Hi Tens,乾杯的答覆。在控制檯中顯示「http://nightline.co.uk/procedures/DF_Bristol/ClientCalls/DF_Bristol-Bookings.php?branchGet=DF_Bristol」如果我使用該地址並直接加載頁面,一切正常。如果我通過我的網站執行它失敗。我在主要問題中添加了與該div相互作用的唯一其他代碼。希望這可以幫助。 – Blinkydamo 2014-11-01 20:44:27

+0

忘記添加的代碼,它是我已經添加的代碼對不起 – Blinkydamo 2014-11-01 20:52:43

+0

該URL以?branchGet = DF_Bristol結尾。檢查每次是否發生錯誤。它的編碼方式現在每次發生錯誤時branchGet = something不是請求字符串的一部分。您可以使用if(array_key_exists('branchGet',$ _GET){$ branch = $ _GET ['branchGet'];}來避免錯誤,如果您請求沒有branchget GET變量的URL – 2014-11-02 22:57:16