Intereting Posts
Php Curl HTTP POST REQUEST устанавливает настраиваемый заголовок с вложенными парами значений ключа Возвращаемое значение рекурсивной функции PHP Поиск и замена регулярных выражений во всех строках таблицы с помощью Laurvel 4's Fluent or Eloquent Список файлов с исключением папок и всех его дочерних подкаталогов Как получить дочерний объект PHP DOMDocument по индексу Как получить несколько выбранных значений поля select в php? проблемы эха в PHP PHP: удалить URL-адрес? Объект пуст в formModifier по событиям формы Объединение нескольких перекрывающихся прозрачных png-изображений с помощью php Данные $ _POST возвращаются пустым, если заголовки> POST_MAX_SIZE Является ли php-сессия неизменной от пользователя? Установить значение по умолчанию для элемента управления выбором HTML в PHP Java MessageDigest SHA1-алгоритм возвращает другой результат, чем SHA1-функция php Как найти ссылки для загрузки видео?

PHP: проблема с параметром Ajax-to-PHP

Используя код Ajax, указанный ниже, в начале моей страницы, ETD2.html , он отправит параметр в php-скрипт, содержащий оператор switch. Проблема, с которой я столкнулась, заключается в том, что для корректной работы оператора switch параметр должен содержать больше, чем просто число, а для выполнения запроса mysql мне нужна переменная, которая будет равна параметру, хотя он будет содержать только число в переменной и ничего больше.

Ajax:

<script type="text/javascript"> function doAjax(ajaxFunction, str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } 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("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getuser.php?q="+str+"func="+ajaxFunction,true); xmlhttp.send(); } </script> 

PHP:

 <?php include("dbinfo.inc.php"); $con = mysql_connect(localhost, $username, $password); if (!$con) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db($database, $con); if (!$db_selected) { die('Could not connect to ' . $database . '<br />' . mysql_errno() . ': ' . mysql_error()); } $sFunction = $_GET["func"]; $q=$_GET["q"]; switch($sFunction){ case 'showCharacters': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; case 'showTowers': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; case 'showEnemies': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; } ?> в <?php include("dbinfo.inc.php"); $con = mysql_connect(localhost, $username, $password); if (!$con) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db($database, $con); if (!$db_selected) { die('Could not connect to ' . $database . '<br />' . mysql_errno() . ': ' . mysql_error()); } $sFunction = $_GET["func"]; $q=$_GET["q"]; switch($sFunction){ case 'showCharacters': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; case 'showTowers': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; case 'showEnemies': $result = mysql_query("SELECT * FROM `tablename` WHERE id = '" . mysql_real_escape_string($q) . "'") or die(mysql_error()); Display Info from Database. break; } ?> 

Я пробовал несколько разных вещей, хотя ничего не получилось. Одна вещь, которую я пробовал, заключается в том, что после внесения параметра в переменную в начале скрипта я превратил ее в строку и попробовал выражение preg_replace, но это все еще не имело никакого эффекта. Может быть, я не использовал правильный синтаксис? Я не уверен. Я не очень хорошо разбираюсь в PHP, но я уверен, что я на правильном пути.

Параметр передается скрипту в этом формате: («Number» func = «parentelement-name») = 2func=showTowers

Это то, что я пытался, хотя это не сработало.

 $para =$_GET["q"]; $bres = (string)$para; $ares = preg_replace("/[^0-9]/","", $bres); 

Любая помощь приветствуется. Пожалуйста, не комментируйте jQuery или не говорите ничего отрицательного о том, как немой мой вопрос. Если бы это было действительно глупо, я бы не просил о помощи.

Solutions Collecting From Web of "PHP: проблема с параметром Ajax-to-PHP"