Загрузить PHP-файл с помощью document.createElement () - PullRequest
0 голосов
/ 23 июня 2011

Как я мог сделать эту работу? Я хочу загрузить php-файл так:

  • Нажмите кнопку.
  • Вызов функции Javascript.
  • В функции Javascript создайте img с помощью src file.php.

Это должно заставить загрузку php. Вот код.

<script type="text/javascript">
var d;

function callSave() {
 alert ('calling');
 if (d) document.body.removeChild(d);
 // d = document.createElement("script");
 d = document.createElement("img");
 d.src = "savepages.php";
 //d.type = "text/javascript";
 document.body.appendChild(d);
}

</script>

Затем в savepages.php я делаю еще одно предупреждение, чтобы убедиться, что php вызывается, а он - нет. Вот файл savepages.php.

<?php
echo "alert('from the php');"; 
?>

Оповещение от php не происходит. Есть ли другой тип элемента, который будет вызывать загрузку php? У меня не установлен Ajax, поэтому мне нужен обходной путь, подобный этому.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Обнаружил лучший способ справиться с этим.Существует этот простой код, который объясняет, как вызывать функцию javascript из события формы и из этой функции javascript загружать файл PHP.Код, найденный на http://daniel.lorch.cc/docs/ajax_simple/, также указан здесь:

<script type="text/javascript">
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
}

function validate(user) {
  http.abort();
  http.open("GET", "validate.php?name=" + user, true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById('msg').innerHTML = http.responseText;
    }
  }
  http.send(null);
}
</script>

<h1>Please choose your username:</h1>

<form>
  <input type="text" onkeyup="validate(this.value)" />
  <div id="msg"></div>
</form>

validate.php

<?php
function validate($name) {
  if($name == '') {
    return '';
  }

  if(strlen($name) < 3) {
    return "<span id=\"warn\">Username too short</span>\n";
  }

  switch($name) {
    case 'bob':
    case 'jim':
    case 'joe':
    case 'carol':
      return "<span id=\"warn\">Username already taken</span>\n";
  }

  return "<span id=\"notice\">Username ok!</span>\n";
}

echo validate(trim($_REQUEST['name']));
?>
0 голосов
/ 23 июня 2011

Вы можете использовать элемент iframe

<script type="text/javascript">
var d;

function callSave() {
 alert ('calling');
 if (d) document.body.removeChild(d);
 d = document.createElement("iframe");
 d.src = "savepages.php";
 document.body.appendChild(d);
}

</script>
...