Как переменная и это значение могут свободно перемещаться в цикле PHP-> HTML-> JS-> PHP

Я добавляю поле ввода комментариев к каждой статье XML-RSS. Когда я выбираю URL-адрес RSS, обычно получаются следующие результаты:

Код PHP

for ($i=0; $i<=19; $i++) {
  $item_title=$x->item($i)->getElementsByTagName('title')
  ->item(0)->childNodes->item(0)->nodeValue;
  $item_link=$x->item($i)->getElementsByTagName('link')
  ->item(0)->childNodes->item(0)->nodeValue;
  $item_desc=$x->item($i)->getElementsByTagName('description')
  ->item(0)->childNodes->item(0)->nodeValue;
  $item_date=$x->item($i)->getElementsByTagName('pubDate')
  ->item(0)->childNodes->item(0)->nodeValue;

  echo ("<p><a href='" . $item_link
  . "' target=\'_blank\'>" . $item_title . "</a>");
  echo ("<br>");
  echo ($item_desc . "<br>".$item_date."</p>");

  $item_link1 = str_replace('http://','',$item_link);
  $item_link2 = str_replace('https://','',$item_link1);
  $item_link3 = str_replace('/','-',$item_link2);
  $item_link4 = str_replace('?','-',$item_link3); 

  $content = $item_title."--". $item_link."--".$item_desc."--".$item_date;   
  file_put_contents("./comments/".$item_link4.".txt",$content);

  //Next line is something wrong or not??
  echo "<option id = ".$item_link4." onclick=\"showComment(this.value)\" value = ".$item_link4."> Show Comments </option> <div id=\"".$item_link."\"></div>";  

Далее я вижу результаты, как показано на картинке ниже. Как переменная и это значение могут свободно перемещаться в цикле PHP-&gt; HTML-&gt; JS-&gt; PHP

И я кодирую JS, в котором есть функция showComment, как показано ниже.

 function showComment(str) {
    if (str.length == 0) { 
        document.getElementById(""+item_link4+"").innerHTML = "";
        return;
     } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById(""+item_link4+"").innerHTML = this.responseText;
            }
        };

         var q = document.getElementById(""+item_link4+"").value;
        xmlhttp.open("GET", "showComment.php?q = " + q, true);
        xmlhttp.send();
     }
    }

Затем я кодирую showComment.php, как показано ниже, чтобы увидеть значение q. Но, Примечание: Неопределенный индекс: q в E: \ xampp \ htdocs \ code \ v1 \ showComment.php в строке 5.

Первая часть похожа на следующую.

// line 5 is $q = html... 
$q = htmlspecialchars($_GET['q']);
global $result;
echo $q;

В конце концов, у меня что-то не так в JS-коде, который получил item_link4 Как изменить переменную JS, полученную из кода php-HTML? Пожалуйста, ваша доброта.

Вы пробовали использовать var_dump(item_link4) в своем PHP-коде? или вы можете использовать инструменты разработчика в своем браузере, чтобы показать, имеет ли your option уже значение

Tobok Sitanggang 04.05.2018 21:15

Трудный. В инструментах разработчика, как я могу проверить значение переменной в JS?

Drohjho 04.05.2018 21:25

можно использовать console.info(your_variable);. он отобразит результат в инструментах разработчика консоли, или вы можете просто использовать alert(something);

Tobok Sitanggang 04.05.2018 21:30

Когда я использую var_dump ($ item_link4), результатом будет строка (56) "www.doctorsnews.co.kr-news-articleView.html-idxno = 123372" строка (56) "www.doctorsnews.co.kr-news- articleView.html-idxno = 123372 "строка (56)" www.doctorsnews.co.kr-news-articleView.html-idxno = 123372 вместо "показать комментарии"

Drohjho 04.05.2018 21:32

console.info ($ item_link) VM2231: 1 Uncaught ReferenceError: $ item_link не определен в <anonymous>: 1: 13 (анонимный) @ VM2231: 1 console.info (item_link) VM2239: 1 Uncaught ReferenceError: item_link не определен в <анонимный>: 1:13

Drohjho 04.05.2018 21:33

console.info (item_link4) VM2440: 1 Uncaught ReferenceError: item_link4 не определен в <anonymous>: 1: 13 (анонимный) @ VM2440: 1 console.info ($ item_link4) VM2443: 1 Uncaught ReferenceError: $ item_link4 не определен в <анонимный>: 1:13

Drohjho 04.05.2018 21:35

Первая переменная PHP $ item_link4 отправляет значение на html-страницу. Но при onclick значение $ item_link4 не попадает в JS. Я думаю, что значение параметра уже анализировалось как строка. Итак, как мне поймать строку синтаксического анализа. Думаю, в этом есть смысл.

Drohjho 04.05.2018 21:38
string(56) - это длина вашего значения, где тип - строка. и q должен иметь значение int, потому что вы используете document.getElementById, поэтому вы получаете эту ошибку
Tobok Sitanggang 04.05.2018 21:41

да это правильно. Вы можете перейти по этой ссылке stackoverflow.com/questions/2470089/…

Tobok Sitanggang 04.05.2018 21:49
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
53
1

Ответы 1

Я столько раз пробовал. Наконец-то я получил хороший результат и пошел в лучшую сторону. Код PHP

 echo " <option  id = ".$i." onclick=\"showComment".$i."(this.value)\" value = ".$item_link4."> Show Comments </option>";  

И я изменил код JS, как показано ниже.

<script>
    function showComment0(str) {
if (str.length == 0) { 
    document.getElementById("0").innerHTML = "";
    return;
 } else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("0").innerHTML = this.responseText;
        }
    };

     var q = document.getElementById("0").value;
    xmlhttp.open("GET", "showComment.php?q = " +q, true);
    xmlhttp.send();
 }
}
</script>
    ....

  <script>
    function showComment22(str) {
if (str.length == 0) { 
    document.getElementById("22").innerHTML = "";
    return;
 } else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("22").innerHTML = this.responseText;
        }
    };

     var q = document.getElementById("22").value;
    xmlhttp.open("GET", "showComment.php?q = " +q, true);
    xmlhttp.send();
 }
}
</script>
  <script>
    function showComment23(str) {
if (str.length == 0) { 
    document.getElementById("23").innerHTML = "";
    return;
 } else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("23").innerHTML = this.responseText;
        }
    };

     var q = document.getElementById("23").value;
    xmlhttp.open("GET", "showComment.php?q = " +q, true);
    xmlhttp.send();
 }
}
</script>

Итак, я сделал скрипт с идентификаторами от 0 до 18. То есть нужно 19 скриптов. Жду ответа получше.

вы нашли свой собственный путь: D, удачного кодирования.

Tobok Sitanggang 05.05.2018 00:34

Другие вопросы по теме