Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用作为ajax响应返回的字符串分配给php变量_Php_Sql_Ajax - Fatal编程技术网

如何使用作为ajax响应返回的字符串分配给php变量

如何使用作为ajax响应返回的字符串分配给php变量,php,sql,ajax,Php,Sql,Ajax,我从下拉菜单menuid=field中选择一个选项,并根据该值生成另一个下拉菜单,我使用ajax检索field1输入的值。功能是: function showbranches(degree) { var XMLHttp=false; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari XMLHttp=new XMLHttpRequest(); } else

我从下拉菜单menuid=field中选择一个选项,并根据该值生成另一个下拉菜单,我使用ajax检索field1输入的值。功能是:

function showbranches(degree)
{
  var XMLHttp=false;
  if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
     XMLHttp=new XMLHttpRequest();
   }
  else
   {// code for IE6, IE5
     XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

  XMLHttp.open("POST","SORS/sendegree.php?degree="+degree,true);
  XMLHttp.onreadystatechange = function(){

  if (XMLHttp.readyState==4 && XMLHttp.status == 200)
  {
      document.getElementById('br').innerHTML=XMLHttp.responseText; 
  }  
 }
 XMLHttp.send(null); 
}  
php文件中的代码非常简单

<?php echo $_REQUEST['degree'];
?>

您需要连接变量

试试这个

$get_cty=mysql_query("SELECT * FROM abc WHERE city='".$state."'") or die(mysql_error());

我在大学里学到的是,每当你需要一个变量到查询中的值时,你就在等号后面加上“…”,然后把变量放在中间。< /P>


希望能有帮助。

你不能那样做。从通过ajax访问的文件运行查询,而$\u请求已经被弃用好几年了,因为它本质上是不安全的。改用$\u POST或$\u GET。修复后,请在删除数据库之前修复SQL查询。在参数化查询中使用mysqli或PDO,而不是像现在这样将SQL注入连接在一起。在PHP中,您可以将扩展变量内联到带有双引号的字符串中,因此Hello$dear World相当于“Hello”。$dear.“World”。您的代码与topicstarter的代码相当。很高兴听到你的大学也没有教SQL注入。你是对的,先生,我是一个初学者,我在做自己没有大学的事情。在SQL注入过程中,插入SQL查询的php变量来自下拉菜单,这仍然是一个威胁吗?我很高兴收到你的来信@Niels@user2371258用户输入总是一个线程。有些人可以很容易地在浏览器中用输入字段替换下拉列表,或者使用其他方法来操作回发。@Niels你是否想过他已经在代码的其他地方解释了这一点。他可以很容易地使用if语句来检查是否有选择,以及是否是他放在那里的选择之一。那就把那家伙放了。如果你看他的代码,他把$state用单引号括起来,用双引号括起来,所以如果他想保持这种结构,他确实需要连接。
$get_cty=mysql_query("SELECT * FROM abc WHERE city='$state'")or die(mysql_error()); 
$get_cty=mysql_query("SELECT * FROM abc WHERE city='".$state."'") or die(mysql_error());