Я создаю динамический csv для форматирования массива, а часть его отображает отформатированный массив, а другая часть должна отображать код для него. Я не могу заставить его отображать код, чтобы он просто не показывал массив снова, что мне делать?
-Javascript
$.post('csv.php', {names : names, fp : fp}, function(data){
$('#arrayDisp > center > textarea').html(data);
$.ajax({
url: "csv.php",
context: document.body,
success: function(){
$('#codeDisp > center > textarea').html(data);
}
});
});
-Php
$file = file(_FILE_PATH, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$data = array();
$line_number = 0;
foreach($file as $f) {
$line = explode(',', $f);
$i = 0;
foreach($line as $l) {
$data[$line_number][$names[$i]] = $l;
$i++;
}
$line_number++;
}
json_encode($data);
print_r($data);
?>
Благодаря полезной подсказке Эмиссара я нашел ответ на свою проблему -
Я добавил переменную запроса в мои почтовые запросы и переименовал их, когда все было позади -
var request = 'array';
$.post('csv.php', {names : names, fp : fp, request : request}, function(data){
$('#arrayDisp > center > textarea').html(data);
request = 'code';
$.post('csv.php', {names : names, fp : fp, request : request}, function(data){
$('#codeDisp > center > textarea').html(data);
});
});
Тогда в моем php-коде я сделал это -
if ($_POST['request'] === "array") {
json_encode($data);
print_r($data);
}
else if ($_POST['request'] === "code") {
echo file_get_contents('csv.php');
}
json_encode
, что ваш json_encode
является избыточным, потому что вы его не выводите. print_r
печатает вывод PHP. Если вам нужен был аккуратно отформатированный json, вы можете повторить json_encode
с его опцией битой маски «pretty print» (php 5.4+) - демо
Можешь попробовать
foreach($data as $key => $value)
{
echo $key." has the value". $value;
}
Это может сработать для вас
Я бы изменил сценарий, чтобы принять параметр GET. поэтому он читается так
if($_GET['showSource'])
highlight_file ($_SERVER['PHP_SELF']);
else
//do stuff
Таким образом, ваш JS-вызов будет фактически двумя вызовами, сначала вы вызываете скрипт без? ShowSource = 1, поэтому вы получите разобранную csv thingy, затем вы вызываете с помощью showSource = 1 и получаете исходный текст.