Member 13798443 Ответов: 1

Переменная Javascript в PHP - коде через ajax.


Привет,
Я хочу передать переменную t в php, чтобы использовать ее для поиска. Я пробовал с ajax, но я делаю что-то не так.
<pre lang="Javascript"><script >


                                    function get_selection() {
                                        var txt = '';
                                        if (window.getSelection) {
                                            txt = window.getSelection();
                                        } else if (document.getSelection) {
                                            txt = document.getSelection();
                                        } else if (document.selection) {
                                            txt = document.selection.createRange().text;
                                        }
                                        return txt;
                                    }

                                    $(document).dblclick(function(e) {
                                        var t = get_selection();
                                        //alert("Concordance for:"+" "+t);
                                        document.getElementById("word").innerHTML = t;
                                    });

                        var var_data = t;
                        $(document).ready(function() { 
                        $('#sub').click(function() { 
         $.ajax({ 
         url: 'phpPage.php?var_PHP_data='+var_data,
         type: 'GET', 
         data: { var_PHP_data: var_data },

          success: function(data) { 
            $('#result').html(data)
             } }); }); }); 

</script>


Я не знаю, как теперь использовать переменную в php.Я хочу, чтобы $str был значением 't'. Вот мой код:

<?php


  
   if(isset($_GET["display"])){


            

    $fileName="https://users.cs.cf.ac.uk/KurtevaA/searchfile.txt";
    $lines = file($fileName);
    $str="<script>document.write[t]</script>";
    echo $str;
    foreach ($lines as $lineNumber => $line) {
        if (strpos($line, $str) !== false) {
          echo $line;
            return $line;
        }
    }
    return -1;
                  }


                                  ?>




а html-код:
<input type="submit" value="Submit" id="sub"/> <p id="result"></p>


Что я уже пробовал:

Любая помощь была бы очень признательна, так как я новичок.

enhzflep

Вы добавляете "?var_PHP_data" к url-адресу, поэтому вам нужно проверить $_GET["var_PHP_data"] в php-коде..
Одному Богу известно, как вы думаете, что $_GET["дисплей"] предоставит вам что-нибудь.

Подсказка: сделайте а var_dump($_GET); в вашем php - коде, чтобы увидеть, что на самом деле делает это. ;)

Member 13358832

Я передаю "текст" и "дата" типы через $_POST, где в PHP я страдаю ошибка в "дата" индекс "неизвестный", но в "тексте" это нормально. Пожалуйста, устраните ошибку.

Спасибо
Мухаммед Навид

1 Ответов

Рейтинг:
0

Richard Deeming

Цитата:
$(document).dblclick(function(e) {
    var t = get_selection();
    //alert("Concordance for:"+" "+t);
    document.getElementById("word").innerHTML = t;
});

var var_data = t;

То var var_data = t; строка выполняется до то dblclick обработчик событий. Он также не имеет доступа к переменной t определено в функции обработчика событий, поэтому по умолчанию оно будет иметь значение "undefined".

Измените код обработчика событий так, чтобы он обновлял глобальную переменную:
var var_data = null;

$(document).dblclick(function(e) {
    var_data = get_selection();
    //alert("Concordance for:"+" "+var_data);
    document.getElementById("word").innerHTML = var_data;
});

$(document).on("click", "#sub", function() { 
    $.ajax({ 
        url: 'phpPage.php?var_PHP_data=' + encodeURIComponent(var_data),
        type: 'GET', 
        success: function(data) { 
            $('#result').html(data);
        }
    }); 
}); 

Чтобы получить доступ к переменной из PHP:
<?php
if(isset($_GET["var_PHP_data"])){
    $str = $_GET["var_PHP_data"];
    $fileName="https://users.cs.cf.ac.uk/KurtevaA/searchfile.txt";
    $lines = file($fileName);
    foreach ($lines as $lineNumber => $line) {
        if (strpos($line, $str) !== false) {
            echo $line;
            return $line;
        }
    }
    
    return -1;
}
?>