ホームページ > バックエンド開発 > PHPチュートリアル > Ajax が送信例外を報告するが、mysql に null を挿入することについて

Ajax が送信例外を報告するが、mysql に null を挿入することについて

WBOY
リリース: 2016-06-23 13:19:12
オリジナル
1232 人が閲覧しました

ログイン後にコピー





姓名:






性别:




电话:





家庭地址:





工种类别:





从业时间:





工作区域:







自我介绍:





(请等待3个工作日,将会有工作人员和您联系)













<script> <br /> <br /> <br /> function isMobile(a) //验证手机号码 <br /> { <br /> var reg = /^(13|15|18|17)[0-9]{9}$/; //正则表达式 <br /> return reg.test(a); <br /> } <br /> <br /> $('#btn_submit').click(function(){ <br /> //xm xb sjhm jtdz gzlb cysj gzqy note <br /> var xm=$("#xm").val(); <br /> //alert(xm); <br /> <br /> <br /> if(xm == '') <br /> { <br /> $("#msg").html('没有填写姓名!'); <br /> return false; <br /> } <br /> <br /> var xb=$("#xb").val(); <br /> if ($(":radio:checked").length == 0) <br /> { <br /> $("#msg").html('没有选择性别!'); <br /> return false; <br /> } <br /> <br /> var sjhm=$("#sjhm").val(); <br /> if( isMobile(sjhm) == false) <br /> { <br /> $("#msg").html('没有填写手机号码!'); <br /> return false; <br /> } <br /> <br /> var jtdz=$("#jtdz").val(); <br /> if( jtdz == '') <br /> { <br /> $("#msg").html('没有填写家庭住址!'); <br /> return false; <br /> } <br /> <br /> var gzlb = document.getElementById("gzlb").value; //selectid <br /> //var index = obj.selectedIndex; // 选中索引 <br /> //var text = obj.options[index].text; // 选中文本 <br /> //var value = obj.options[index].value; // 选中值 <br /> if(gzlb == "0") <br /> { <br /> $("#msg").html('请选择工种类别!'); <br /> return false; <br /> } <br /> //alert(obj); <br /> <br /> var cysj=$("#cysj").val(); <br /> if ( cysj == '') <br /> { <br /> $("#msg").html('没有选择从业时间!'); <br /> return false; <br /> } <br /> <br /> var gzqy = document.getElementById("gzqy").value; <br /> if( gzqy == '0') <br /> { <br /> $("#msg").html('请选择工作区域!'); <br /> return false; <br /> } <br /> <br /> var note=$("#note").val(); <br /> if( note == '') <br /> { <br /> $("#msg").html('没有填写自我介绍!'); <br /> return false; <br /> } <br /> <br /> <br /> $.ajax({ <br /> url:"./index_c.php", <br /> type:"POST", <br /> data:{"xm":xm, "xb":xb, "sjhm":sjhm, "jtdz":jtdz, "gzlb":gzlb, "cysj":cysj,"gzqy":gzqy,"note":note}, <br /> dataType:"json", <br /> async : false, <br /> success:function(){ <br /> //alert('success'); <br /> if(error==0) <br /> { <br /> $("#btn_submit").attr("disabled","disabled"); <br /> $("#btn_submit").css({"background":"#0000000"}); <br /> $("#msg").html('提交成功!'); <br /> } <br /> else{ <br /> $("#msg").html(msg); <br /> } <br /> }, <br /> error:function(){ <br /> alert('error'); <br /> //$("#msg").html("提交异常!"); <br /> } <br /> <br /> }); <br /> <br /> return false; <br /> }); <br /> <br /> <br /></script>
这是全部代码 求大神帮我检查下


回复讨论(解决方案)

data:{"xm":xm, "xb":xb, "sjhm":sjhm, "jtdz":jtdz, "gzlb":gzlb, "cysj":cysj,"gzqy":gzqy,"note":note},
中的所用变量都没有赋值!

dataType:"json",
要求服务端返回 json 数据

data:{"xm":xm, "xb":xb, "sjhm":sjhm, "jtdz":jtdz, "gzlb":gzlb, "cysj":cysj,"gzqy":gzqy,"note":note},
中的所用变量都没有赋值!

dataType:"json",
要求服务端返回 json 数据


<?php	ob_start();    session_start(); 	    header("Content-Type: text/html; charset=UTF-8");		//xm xb sjhm jtdz gzlb cysj gzqy note			$xm = isset($_POST['xm'])?$_POST['xm']:'';	$xb = isset($_POST['xb'])?$_POST['xb']:'';	$sjhm = isset($_POST['sjhm'])?$_POST['sjhm']:'';	$jtdz = isset($_POST['jtdz'])?$_POST['jtdz']:'';	$gzlb = isset($_POST['gzlb'])?$_POST['gzlb']:'';	$cysj = isset($_POST['cysj'])?$_POST['cysj']:'';	$gzqy = isset($_POST['gzqy'])?$_POST['gzqy']:'';	$note = isset($_POST['note'])?$_POST['note']:'';try{	/* if(strlen($note)>200){		//throw new Exception("自我介绍超过了200个字符!");				$data=array(			"error"=>1,			"msg"=>"<自我介绍>输入了 " . strlen($note) ." 个字符,超过了200个字符!"		);		echo json_encode($data);		exit;	} */		/* 	if(isset($_POST['xm']))	{	  $xm=trim($_POST['xm']);		// check forms filled in		if (empty($xm))		{		  echo'<div align="center"> 用户名必须填写,'			  .' 请重新输入 <a href="你的文件名.php">返回</a><br>';  	   exit;  		}	} */    $date = date("Y-m-d H:i:s");					    $conn = mysql_connect("localhost","root","123456");	mysql_select_db("test", $conn);	mysql_query("set names 'utf8'");    		$sql="SELECT count(1) as RecordCount FROM fhzj where sjhm='$sjhm'";	$result = mysql_query($sql);	if($result)	{		$row = mysql_fetch_assoc($result);		$recordCount = $row['RecordCount'];  		if($recordCount > 0)		{			$data=array(				"error"=>1,				"msg"=>"手机号码已经存在!"			);			echo json_encode($data);			exit;		}	}	else	{		$data=array(			"error"=>1,			"msg"=>mysql_error()        );        echo json_encode($data);		exit;	}				$sql="INSERT INTO `fhzj` (`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";	$sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";			$result = mysql_query($sql, $conn);	if(!$result){		$data=array(			"error"=>1,			"msg"=>mysql_error()        );				echo json_encode($data);				throw  new Exception(" 异常情况:" . mysql_error());		//throw  new Exception($sql);    }    else	{		$data=array(			"error"=>0,			"msg"=>"提交成功"        );				echo json_encode($data);	}   			$data=array(			"error"=>0,			"msg"=>"提交成功"        );				echo json_encode($data);		}catch(Exception $ex){    $data=array(        "error"=>1,        "msg"=>$ex->getMessage()    );    echo json_encode($data);   } ?>
ログイン後にコピー


data:{"xm":xm, "xb":xb, "sjhm":sjhm, "jtdz":jtdz, "gzlb":gzlb, "cysj":cysj,"gzqy":gzqy,"note":note}
输出看,是否有值

再看看你的sql语句

$sql="INSERT INTO `fhzj` (`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";
$sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";

你的values都没赋值

data:{"xm":xm, "xb":xb, "sjhm":sjhm, "jtdz":jtdz, "gzlb":gzlb, "cysj":cysj,"gzqy":gzqy,"note":note},
中的所用变量都没有赋值!

dataType:"json",
要求服务端返回 json 数据


这是我的PHP代码 请问我该在哪赋值啊 不好意思 我是才入行 基础不太好 麻烦你解释下

$sql="INSERT INTO `fhzj` (`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";
$sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";

你的values都没赋值


我应该这么写么
var "xm" = xm
ログイン後にコピー

不好意思我是小白 实在

    $sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";改成    $sql = $sql . " values('$xm')";//后面几个以此类推
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

    $sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";改成    $sql = $sql . " values('$xm')";//后面几个以此类推
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


我应该在前面的判断里面赋值过了吧

    $sql = $sql . " values(`xm`,`xb`,`sjhm`,`jtdz`,`gzlb`,`cysj`,`gzqy`,`note`)";改成    $sql = $sql . " values('$xm')";//后面几个以此类推
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


还是不行  提示错误

你可以在你要用的变量两边加上{},因为双引号中 { 变量 } 这样才可以解析

你可以在你要用的变量两边加上{},因为双引号中 { 变量 } 这样才可以解析


你可以示例下么 


你可以在你要用的变量两边加上{},因为双引号中 { 变量 } 这样才可以解析


你可以示例下么 
$sql = "insert into 表名(你要使用的字段名) values(`{$xm}`,`{$xb}`,`{$sjhm}`,`{$jtdz}`,`{$gzlb}`,`{$cysj}`,`{$gzqy}`,`{$note}`)";
这样可以试一下输出$sql,看看双引号里的变量解析没有
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート