Это моя первая неделя использования php, поэтому заранее спасибо за ваш конструктивный ответ.
У меня есть html-страница с добавленным параметром URL: mywebsite.com/f.html?survey_id=5d86055f35bf41f3a35f2c779fc478dc
Мне нужно передать этот параметр Survey_id в php-скрипт, который сохраняет этот идентификатор в текстовом файле. Мой текущий код не проходит правильно, так как текстовый файл пуст.
HTML-страница /f.html PHP-скрипт /test.php
Все это выполняется на стороне сервера.
Скрипт сохранения работает, как будто вместо $id я просто сохраняю строку типа 'd', все работает корректно.
Я попробовал приведенный ниже код, используя $_GET, но вывод пуст, поэтому я предполагаю, что параметр не передается сценарию .php, который выполняет fwrite.
Я также читал, что это потенциально можно исправить, изменив файл .htaccess, и попытался добавить приведенное ниже в мой файл .htaccess, но это не решило проблему.
RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]
Я чувствую, что это не совсем правильное правило, но не знаю, как изменить его, чтобы оно соответствовало моему конкретному случаю.
jQuery(document).on('click', 'div#download', function () {
jQuery('div#counter1').html('Loading...');
var ajax = jQuery.ajax({
method: 'get',
url: '/test.php', // Link to this page
data: { 'increase': '1' }
});
ajax.done(function (data) {
jQuery('div#counter1').html(data);
});
ajax.fail(function (data) {
alert('ajax fail : url of ajax request is not reachable');
});
});
test.php
$myFile = "testFile2.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$id = $_GET['survey_id'];
$stringData = $id;
fwrite($fh, $stringData);
fclose($fh);
Ожидаемый результат в текстовом файле должен быть 5d86055f35bf41f3a35f2c779fc478dc.
Текущий результат заключается в том, что текстовый файл пуст.
@Refilon Да, это то, о чем я спрашиваю, как это сделать.
Единственный параметр, с которым вы вызвали test.php, это increase, поэтому вы, конечно, не можете ожидать, что $_GET['survey_id'] будет иметь какое-либо значение. Ваш код JS, работающий на HTML-странице, должен прочитать это значение и передать его…
Итак, ваш вопрос сводится к еще одному дубликату stackoverflow.com/questions/979975/…, тогда…?
Возможный дубликат Как получить значение из параметров GET?






Передайте Survey_id в таких данных
jQuery(document).on('click', 'div#download', function () {
var url =window.location.search;
var survey_id = /survey_id =([^&]+)/.exec(url)[1];
jQuery('div#counter1').html('Loading...');
var ajax = jQuery.ajax({
method: 'get',
url: '/test.php', // Link to this page
data: { 'increase': '1', 'survey_id': survey_id }
});
ajax.done(function (data) {
jQuery('div#counter1').html(data);
});
ajax.fail(function (data) {
alert('ajax fail : url of ajax request is not reachable');
});
});
Вероятно, это сработает, если есть только 1 параметр, но не получится, если за Survey_id будет больше параметров.
Это сработало! Большое спасибо. RE, что отметил @Refilon, у меня есть только один параметр
Вам также нужно будет передать Survey_id на страницу test.php.