2016-06-14 1 views
0

Я учился использовать AJAX с запросом GET, который позволяет мне получить доступ к скрипту PHP с массивом данных на сервере. Я хочу иметь возможность отправить запрос, который сообщает серверу, что он запускает код, который откроет приложение и будет обрабатывать некоторую информацию об этом приложении.Как использовать AJAX для связи и запуска кода на сервере?

Вот код, который я использую для первой связи с сервером, затем отправьте запрос на сервер и, наконец, обработайте ответы с сервера.

var xmlHttp = createXmlHttpRequestObject(); 

function createXmlHttpRequestObject(){ 
    var xmlHttp; 

    if(window.ActiveXObject) 
    { 
     try 
     { 
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(e) 
     { 
      xmlHttp = false; 
     } 
    } 
    else 
    { 
     try 
     { 
      xmlHttp = new XMLHttpRequest(); 
     } 
     catch(e) 
     { 
      xmlHttp = false; 
     } 
    } 

    if(!xmlHttp) 
    { 
     alert("cant create that object hoss"); 
    } 
    else 
    { 
     return xmlHttp; 
    } 
} 

function process(){ 
    if(xmlHttp.readyState == 0 || xmlHttp.readyState == 4) //State were object is free and ready to communicate with server 
    { 
     food = 'bacon'; 
     xmlHttp.open("GET", "ExecuteMaya.php?food="+food,true); //Creates request that we are sending to server 
     xmlHttp.onreadystatechange = handleServerResponse; 
     xmlHttp.send(null); 
    } 
    else 
    { 
     setTimeout('process()', 1000); 
    } 
} 

function handleServerResponse(){ 
    if(xmlHttp.readyState == 4) 
    { 
     if(xmlHttp.status == 200) //Means communication was successful 
     { 
      var xmlResponse = xmlHttp.responseText; 
      var xmldom = (new DOMParser()).parseFromString(xmlResponse, 'text/xml'); 
      var text = xmldom.getElementsByTagName("response")[0]; 
      var message = text.childNodes[0].nodeValue; 
      foodTextOutput = message; 
      setTimeout('process()', 1000); 
     } 
     else 
     { 
      alert('Something went wrong!'); 
     } 
    } 
} 

Вот PHP, который я использовал, когда я учился использовать AJAX. Я получил следующую ошибку, когда напечатал переменную «xmldom» из приведенного выше кода на консоль и проверил ее - «ошибка в строке 2 в столбце 1: дополнительный контент в конце документа». Это может быть другой вопрос к моему оригинальному сообщению, но я подумал, что я бы сказал, что эта ошибка произошла. Затем это вызвало эффект нажатия для строки 'var message = text.childNodes [0] .nodeValue;' который вызвал ошибку - «Uncaught TypeError: невозможно прочитать свойство« childNodes »неопределенного».

<?php 
header('Content-Type: text/xml'); 
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>': 

echo '<response>'; 
    $food = $_GET['food']; 
    $foodArray = array('tuna','bacon','beef','loaf','ham'); 
    if(in_array($food, $foodArray)) 
     echo 'We do have '.$food.'!'; 
    elseif($food == '') 
     echo 'Enter a food you idiot'; 
    else 
     echo 'Sorry punk we dont sell no '.$food.'!'; 
echo '</response>'; 
?> 

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

Подводя итог, я хочу, чтобы иметь возможность отправлять логическое или любое другое, что является жизнеспособным с AJAX, серверу, который сообщает ему, что он запускает скрипт. Затем этот скрипт откроет приложение Maya и запустит код Python, который я написал.

Спасибо заранее!

+1

так - в чем вопрос, где проблема? – Jeff

+0

@Jeff Я не уверен, как общаться с сервером таким образом, что я могу сказать, что он запускает код. Также, если кто-то может сказать мне, почему произошли ошибки, о которых я говорил. Благодарю. – skelto

+1

, как только вы вызываете php-скрипт через ajax (как вы уже делали), он запускает код! – Jeff

ответ

1

Как только вы вызываете файл PHP, это начинает запускать код на сервере. Если вы хотите запустить внешнее приложение из PHP, посмотрите на функцию Exec():

http://php.net/manual/en/function.exec.php

0

Вы JQuery перечислены в тегах вопрос. Вы сравнили код javascript и jQuery?

Преимущества использования JQuery являются:

  • less typing,
  • simpler structure
  • automatically cross-browser
  • easily use Promises interface

Посмотрите на эти примеры и посмотреть, если вы предпочитаете методологии JQuery AJAX:

Three simple examples

dynamic drop down box?

Chain AJAX Requests with jQuery Deferred

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