2012-07-31 30 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!