Я думаю, что вы путаете свои концепции.PHP работает только на веб-сервере.Javascript запускается на клиенте (т.е. в веб-браузере)
Если вы создадите страницу с расширением .php
, как в вашем ajax.php
, она будет обслуживаться с вашего веб-сервера один раз, и все, что на нем содержится,в блоке <?php ?>
будет анализироваться сервером - он не динамический.
Результирующая страница содержит проанализированные значения из вашего сценария php, но не самого сценария.
Javascript работает на компьютере пользователя и поэтому обрабатывает взаимодействие с пользователем и события на веб-странице.Вы можете использовать Javascript для вызова серверного скрипта (в данном случае php), когда вам нужно получить данные с сервера.Это в основном то, о чем AJAX.Но, как правило, javascript содержится в файлах, заканчивающихся .js
, которые, как правило, не анализируются вашим веб-сервером, если только javascript фактически не включен на вашу страницу, но в наши дни это не совсем то, что нужно делать.
Я понятия не имею, что вы пытаетесь сделать, смешивая JavaScript с php.Это не AJAX.
Я предлагаю вам использовать что-то вроде JSON.Этот грубый php-скрипт сначала скомпилирует ваши результаты в JSON, а затем вызов javascript ajax.Вам нужно будет включить библиотеку JQUERY и сохранить весь скрипт php в виде отдельного файла с именем getdata.php
.
<?php
// You'll have to do all the database select stuff here
while ($Row = mysql_fetch_array($params))
{
$jsondata[]= array('jsobjectfield1'=>$Row["dbtablefield1"],
'jsobjectfield2'=>$Row["dbtablefield2"], 'jsobjectfield3'=>$Row["dbtablefield3"], 'jsobjectfield4'=>$Row["dbtablefield4"]);
};
echo("{\"TableData\": ".json_encode($jsondata)."};");
?>
Javascript:
$.ajax({
url: 'getdata.php',
type: "POST",
data: entereddata,
dataType: "json",
timeout: (7000),
//wait 7 seconds
error: function(data)
{
}, //end of ERROR handling
success: function(data)
{
// you'll find the data returned here:
data.jsobjectfield1
}; // end of SUCCESS handling
}); // end AJAXcall