2016-02-17 26 views
1

我目前正試圖首先發布用戶的名稱,我試圖從數據庫中檢索到使用ajax的我的php代碼。然後,在調用的成功部分,我試圖創建一個函數從數據庫中檢索數據,該數據庫與我以前發送到頁面的用戶的名稱匹配,但是沒有數據返回到JavaScript代碼。使用兩個Ajax調用發佈然後檢索數據

這裏是我的ajax調用函數。

function checkPatientAnswers(event) { 

    window.open("../src/clinicreview.php", "_self"); 
    var patientname = event.data.patientname; 
    var dataToSend = 'patientname=' + patientname; 
    var clinicquestions = getQuestionsForClinic(); 
    var answers = []; 

    $.ajax({ 
    type: "POST", 
    url: "../src/getselectedpatient.php", 
    data: dataToSend, 
    cache: false, 
    success: function(result) { 

     $.ajax({ 
     url: "../src/getselectedpatient.php", 
     data: "", 
     dataType: "json", 
     success: function(row) { 
      answers = row; 
      console.log(row); 
     } 

     }) 
    } 
    }) 
    console.log(answers); 
    for (i in clinicquestions) { 
    $('#patientanswers').append("<h2>" + clinicquestions[i] + " = " + answers[i]); 

    } 
    $('#patientanswers').append("Patient Status = " + answers[answers.length - 1]); 
} 

這是我的PHP代碼:

<?php 


session_start(); 

$con = mysql_connect("devweb2015.cis.strath.ac.uk","uname","mypass") or ('Failed to connect' . mysql_error()); 


$currentdb = mysql_select_db('yyb11163', $con) or die('Failed to connect' . mysql_error()); 

$patientname = $_POST['patientname']; 
$_SESSION['patient'] = $POST['patientname']; 


$data = array(); 
$query = mysql_query("SELECT question1, question2, question3, question4, patient_status FROM patient_info where real_name = '$patientname'"); 
$data = mysql_fetch_row($query); 
echo json_encode($data); 

mysql_close($con); 
?> 
+1

你可以添加dataType到第一個ajax和console.log結果在第一個ajax看看是否有東西返回:) – guradio

+1

第一次或第二次嘗試沒有返回?嘗試輸出JavaScript到控制檯,也有你的PHP serverside保存一個日誌文件,以便你知道它是否運行和/或你停在哪裏。 - @guradio - 看起來像我在看着你鍵入。哈! –

+0

第一次嘗試的成功函數已運行,因此我假設第一次調用已運行。但是在第二次調用中發回一個空數組 –

回答

1

jQuery的

var dataToSend = {'patientname':patientname}; 

$.ajax({ 
    type : "POST", 
    url : "../src/getselectedpatient.php", 
    data : dataToSend, 
    dataType : "json", 
    cache : false, 
    success: function(result) { 

     console.log(result); 

    } 
}) 

PHP

<?php 

session_start(); 

$_SESSION['patient'] = $POST['patientname']; 

$con = mysql_connect("devweb2015.cis.strath.ac.uk","uname","mypass") or ('Failed to connect' . mysql_error()); 

$currentdb = mysql_select_db('yyb11163', $con) or die('Failed to connect' . mysql_error()); 

$query = mysql_query("SELECT question1, question2, question3, question4, patient_status FROM patient_info where real_name = '".$_POST['patientname']."'"); 

$data = mysql_fetch_row($query); 

mysql_close($con); 

echo json_encode($data); 

?> 

爲了記錄在案,我不寬恕使用您的mysql_*的惡作劇。它已經完全在PHP 7中被刪除,並且不要告訴我你將會騎到PHP 5直到死亡。

其次,您對8000%的SQL注入是開放的。

我知道你很可能只是英國一所學校的學生,但如果你的老師/教授對你的代碼沒有問題,那麼你沒有得到你的錢。

0

你可能忘了設定data第二呼叫:

 $.ajax({ 
      url : "../src/getselectedpatient.php", 
      data : result, 

result.id或什麼的。