2013-03-30 2 views
1

Я переломаю этот вопрос в параграфы для более простой справки.Выход данных с использованием Ajax с PHP

  1. У меня есть сценарий, который вызывает php-файл с использованием Ajax; сценарий выполняется после нажатия кнопки.

  2. РНР файл содержит простой код, который плюсы номера с 1

    <?php 
    $response = $response + 1; 
    echo $response; 
    ?> 
    
  3. Однако что-то идет не так, когда кнопка нажата несколько раз. Я провел некоторое исследование, и я могу заключить, что что-то не так с простым скриптом PHP, который я сделал, или код выполняется только один раз за каждую перезагрузку страницы.

  4. Я прочитал статью, объясняющую большую работу с использованием Javascript, если я хочу, чтобы команда Ajax выполнялась несколько раз во время одного и того же скрипта, но я не вижу причины, по которой она не может выполняться несколько раз, когда кнопка нажата.

    Вопрос: Выполняется ли файл PHP «post.php» при каждом нажатии кнопки? Это что-то с моим файлом PHP? Как я могу сделать скрипт плюс число на 1 каждый раз при нажатии кнопки? И это потому, что для этого мне нужен дополнительный Javascript?

Остальная часть сценария здесь:

<head> 
     <script> 
     function loadXMLDoc() 
     { 
     var xmlhttp; 
     if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
      } 
     else 
      {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
     xmlhttp.onreadystatechange=function() 
      { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
      } 
      } 
     xmlhttp.open("POST","post.php",true); 
     xmlhttp.send(); 
     } 
    </script> 

</head> 
<body> 
    <p>This button will execute an Ajax function</p> 
    <button type="button" onclick="loadXMLDoc()">Press here!</button> 
    <div id="myDiv"></div> 
    <script type="text/javascript" src="http://www.parameter.dk/counter/5b0d9873158158e08cad4c71256eb27c"></script> 
</body> 

Если бы я не был достаточно ясно, в какой-то момент, пожалуйста, выбрать номер пункта и я буду углубляться эту часть.

+1

Что такое $ response? Что заставляет вас думать, что он увеличится на 1, когда вы будете обращаться к странице несколько раз? Он будет повторно инициализирован каждый раз, когда вы отправляете HTTP-запрос. Ваша проблема в том, что вам нужно, чтобы это продолжалось. –

+0

$ response - это переменная, которую я хочу увеличить на 1 каждый раз при нажатии кнопки. Не будет ли $ response сохранять свою ценность, когда веб-сайт перезагружается, и каждый раз, когда нажимается кнопка? – PHPeter

ответ

1

В вашем коде $ response всегда 1, потому что php по умолчанию не имеет состояния. Вы можете исправить это, сохранив ответ в сеансе.

session_start(); 
if (isset($_SESSION['response'])) { 
    $_SESSION['response'] = $_SESSION['response'] + 1; 
} else { 
    $_SESSION['response'] = 1; 
} 
echo $_SESSION['response']; 
+0

Итак, переменная теперь запоминается сессией пользователей? Причина, по которой мой старый скрипт не справлялся с этим, заключалась в том, что весь скрипт перезапускается каждый раз при нажатии кнопки или я что-то упускаю? Этот скрипт работает, однако, благодаря быстрому решению – PHPeter

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