>  기사  >  백엔드 개발  >  CI框架中使用ajax操作数据库问题

CI框架中使用ajax操作数据库问题

WBOY
WBOY원래의
2016-06-23 13:44:38969검색

前台:

<script>//调用方法用ajax操作add_dbdata.phpvar xmlHttpfunction add_dbdata(str,str1){			//alert(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","add_dbdata.php?q="+str,true);	//alert(str1);	//alert(str);		xmlhttp.open("GET","add_dbdata.php?q="+str,true);	   //xmlhttp.open("GET","<?=base_url()?>project_c/add_zijiedian/"+str1+str,true);  这样写,也不好使,不知道哪有问题 	xmlhttp.send();}


后台操作数据库

<?phpheader("Content-type:text/html;charset=utf8");$q=$_GET["q"];$q=(int)$q;echo "<script>alter('kkkkkkk');</script> ";$con = mysql_connect('localhost', 'root', '');if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("test", $con);mysql_query("set names utf8");//$sql = " SELECT * FROM ecm_acategory ";$sql = " insert into data (name) values('999')";echo $sql;$result = mysql_query($sql);mysql_close($con);?>



求助, 本地测试不用CI,这样写没问题,加个CI,上边的路径换了几种也不好使,不知道怎么回事。 先谢谢了!


回复讨论(解决方案)


xmlhttp.open("GET","=base_url()?>project_c/add_zijiedian/"+str1+str,true); 
然后看看浏览器中的源代码




SQL语句 如下
	//插入预算表					$this->db->query("select @myLeft:=PLeft from constrproj where  ConstrProjName = '$dangqiandianname' ");										$this->db->query("UPDATE constrproj SET PRight = PRight + 2 WHERE PRight > @myLeft");										$this->db->query("UPDATE constrproj SET PLeft = PLeft + 2 WHERE PLeft > @myLeft");								$query3 = $this->db->query("select * from constrproj where ConstrProjID= ( SELECT min(ConstrProjID) from constrproj)");						$arr = $query3->result_array();					$ParentID = $arr[0]['ConstrProjID'];										//echo '<script>alert("'.$ParentID.'");</script>';							$this->db->query("INSERT INTO constrproj(ConstrProjName,PLeft,PRight,ParentID,KindLvl) VALUES('$zijiediandianname',@myLeft + 1, @myLeft +2,'$ParentID',1)" );										$query2 = $this->db->query("select * from constrproj");				    $result_count2 = count($query2->result());	



是PLeft值没有得到吗? 

PLeft 不能为空
你向 PLeft 列负的值是 @myLeft + 1
显然 @myLeft 是空值 NULL



谢谢,前辈!
再请教个问题,现在插是插进去了,可是在数据库中出现乱(页面默认编码是utf-8,数据库编码是utf-8),这个和get传参有关系吗?而且用到ajax  



第一个图是在页面赋值,调用控制层,第二个图是控制层里得到值  调模型型 

谢谢了

那不是乱码,而是 url 编码
入库前先解码(urldecode)



晚辈不才,请指教。这样写好像不对。插不到数据库了

搞定  谢谢!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.