2012-07-31 29 views
0

我需要從php文件中獲取字符串有人知道我該怎麼做?使用jQuery將字符串從php發送到js文件

My.php即寫入和讀取一個文件的contenute使用該梅索德

<?php 
$dir = '/var/www/devData/test'; 

// create new directory with 777 permissions if it does not exist yet 
// owner will be the user/group the PHP script is run under 
if (!file_exists($dir)) { 
    mkdir ($dir, 0777); 
} 
if (isset($_POST['data'])) { 

     $stringData = $_POST['data']; 
     $file = "/var/www/devData/test/ciao.txt"; 
     $fh = fopen($file, 'r+') or die("can't open file"); 
     fwrite($fh, $stringData); 
     $theData = fread($fh, filesize($myFile)); //this is the string that i have to pass 
     fclose($fh); 

     return $theData; 

} 


?> 

my.js SCRPT得到從我的PHP文件retrive的strng

function addLabelCustom_options() { 
    var select = document.getElementById('label_custom'); 

$.get("JS/foo.php", function(result){ alert(result) }, "json"); 


/* $.ajax({ 
    url:'/var/www/devData/test/ciao.txt', 
    success: function (data){ 
    //parse ur data 
    //you can split into lines using data.split('\n') 
    //use regex functions to effectivley parse 
    var label_parsed = data.splitCSV(); 
    select.options[0] = new Option("-- Select Label --",0); 
    var label_sort = new Array(); 

    for (var i=0; i<label_parsed.length-1; i++) 
     label_sort.push(label_parsed[i][1]); 

    label_sort.sort(); 
    for (var j=0; j<label_sort.length-1; j++) 
     select.options[j+1] = new Option(label_sort[j],j+1); 

} 
}); 

*/ 
} 

我只需要得到字符串的含義$ theData 看起來好像我不回收任何字符串....

+0

您是否嘗試過向獲取請求添加成功,錯誤和完成以確保您正確獲取數據? – 2012-07-31 10:01:02

+0

是的,即使我發送那樣的回聲$ theData「ciao」警報框仍然是空的 – Edivad 2012-07-31 10:36:07

回答

1
<?php 
$dir = '/var/www/devData/test'; 

// create new directory with 777 permissions if it does not exist yet 
// owner will be the user/group the PHP script is run under 
if (!file_exists($dir)) { 
    mkdir ($dir, 0777); 
} 
if (isset($_POST['data'])) { 

     $stringData = $_POST['data']; 
     $file = "/var/www/devData/test/ciao.txt"; 
     $fh = fopen($file, 'r+') or die("can't open file"); 
     fwrite($fh, $stringData); 
     $theData = fread($fh, filesize($myFile)); //this is the string that i have to pass 
     fclose($fh); 

     echo $theData; // <-- ECHO 

} 


?> 

你必須輸出數據,而不是返回它。那就是迴應它。如果字符串尚未JSON編碼,使用echo json_encode($theData);

+0

真的很感謝,但我的警報框結果爲null。但該文件不是空的! – Edivad 2012-07-31 10:02:03

+0

你可以檢查你的'網絡'電話嗎? – rsplak 2012-07-31 10:03:07

+0

「網絡」呼叫? – Edivad 2012-07-31 10:04:36

0

呼應PHP函數的內容之後(回聲$海圖;)試試下面的jQuery代碼

$.ajax({ 
url:JS/foo.php, 
success:function(result){ alert(result) }, "json"), 
error:function(alert('Not Completed')) 
}; 

而且還要檢查控制檯響應檢查任何errors.You可以查看火狐的F12控制檯

+0

輸出是每次都是空的,沒有錯誤我recive數據,但它看起來像空的 – Edivad 2012-07-31 10:27:51

+0

使用echo json_encode($ theData); die;如果這沒有幫助,那麼回聲一個簡單的字符串,如回聲「你好世界」;死;然後檢查響應,如果它仍然是空的那麼應該有一些問題在JavaScript,如果不是空然後應該有問題在您的文件中讀取代碼在PHP – 2012-07-31 10:36:43

+0

是相同的,每當我得到的值= null – Edivad 2012-07-31 10:41:40

0

我解決了這個問題,每次都是愚蠢的事情,每次我明白我真的很愚蠢,但我後解決方案。

冷杉PHP文件用於在文件

<?php 
$dir = '/var/www/devData/test'; 

// create new directory with 777 permissions if it does not exist yet 
// owner will be the user/group the PHP script is run under 
if (!file_exists($dir)) { 
    mkdir ($dir, 0777); 
} 
if (isset($_POST['data'])) { 

     $stringData = $_POST['data']; 
     $file = "/var/www/devData/test/ciao.txt"; 
     $fh = fopen($file, 'r+') or die("can't open file"); 
     fwrite($fh, $stringData); 
     $theData = fread($fh, filesize($file)); 
     fclose($fh); 

     echo json_encode($theData); 
} 


?> 

創建一個目錄和存儲讀我創建另一個文件PHP

<?php 


     $file = "/var/www/devData/test/ciao.txt"; 
      $fh = fopen($file, 'r') or die("can't open file"); 
     $theData = fread($fh, filesize($file));<--- was the error before i used Myfile but that variable wasn't declare and was empty :) lol 
     fclose($fh); 

     echo json_encode($theData); 


?> 

感謝大家的contenute!