2014-12-23 4 views
2

У меня есть некоторые проблемы с этой частью кода:Простой JQuery после переменной отправки

<script> 
function komenty(photoid) { 
    var xmlhttp=new window.XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      var x = xmlhttp.responseText; 
      $.post('main.php', {x: "foo"}); 
     } 
    } 
    xmlhttp.open("GET", "comments.php?id=" + photoid, true); 
    xmlhttp.send(); 
} 
</script> 

Я пытаюсь отправить эту переменную в моем PHP скрипт на той же странице, которая main.php responseText является не пусто, внутри него несколько строк. Но в моем PHP скрипте он говорит, что «переменные й не определен»

<?php 
echo "<a href='#' class='my-button' onclick='komenty(".$photoid.")'>komentarze</a>"; 
$x = $_POST['x']; 
echo $x; 
?> 

Я не уверен, если я четко понимаю Jquery руководства

+0

Что произойдет, если вы измените на '{x:" foo "}'? – Barmar

+0

@Barmar То же самое: «Примечание: Неопределенный индекс: x в /main.php в строке 627» –

+0

Неопределенный индекс обычно связан с переменными POST и не имеет атрибута имени для него и/или идентификатора элемента формы. –

ответ

1

Вы должны либо использовать другой сценарий для вызова AJAX, чем отображение на главной странице. Или скрипт main.php должен проверить, был ли он вызван с использованием GET или POST.

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // Respond to AJAX call 
    $x = $_POST['x']; 
    echo $x; 
} else { 
    // Display normal HTML 
    echo "<a href='#' class='my-button' onclick='komenty(".$photoid.")'>komentarze</a>"; 
} 
+0

Выполняется другое, но я не уверен, как использовать эту информацию: D –

+0

Рад видеть решение было найдено. Способ пойти. –

+0

@ Fred-ii- Хорошо, это показывает, что переменная не прошла через POST вправо? поэтому, куда он пошел, тогда XD –

Смежные вопросы