Ajax won't post to PHP MYSQL
Ajax won't post to PHP MYSQL
我有一个使用Ajax的2级联选择页面。Ajax正确地填充第二个Select,但是当我使用PHP将数据发布到MySQL时,我得到一个错误,即Ajax填充的字段是"未识别的"。确切的错误是
注意:未定义的索引:probcode在..'input.php联机21日
如果Ajax调用没有进行,并且默认的选择仍然存在,它就会发布。它只有在AJAX替换了DIV之后才会出错。
我想补充的是,它就像从元素从PHP消失,即使AJAX将其添加到表单。是否有另一个PHP函数,我应该使用post AJAX数据到MySQL?
我不知道Jquery,我正在寻找一种方法来让这个工作与JavaScript的时刻(因为时间和我缺乏Jquery知识),但是,如果有一个简单的方法来添加Jquery到现有的代码,我肯定会感兴趣。我也知道数据是不安全的进入MySQL的时刻,这将在此之后立即解决。我现在正在做一个特定功能的线框。
首先是两个选择。
<tr>
<td>Problem Type</td>
<td><?php
mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("test")or die("Connection Failed");
$query = "SELECT * FROM wfprobtype ORDER BY probtype ASC";
$result = mysql_query($query);
?>
<select name="probtype" id="probtype" onchange="changeContent(this.value)">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['ID'];?>" > <?php echo $line['probtype'];?> </option>
<?php
}
mysql_close()
?>
</select>
</td>
<td>Problem: </td>
<td>
<div id="val2div">
<select name="probcode" id="probcode">
<option value="default"></option>
</select>
</div>
</td>
</tr>
这是Ajax调用来替换"val2div" val2.php
<?php
$val2=intval($_GET['val2']);
mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("test")or die("Connection Failed");
$query = "SELECT * FROM wfprobcode WHERE typeID='$val2' ORDER BY Probcode ASC";
$result = mysql_query($query);
?>
<select name="probcode" id="probcode" onchange="">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['Probcode'];?>"> <?php echo $line['Probcode'];?> </option>
<?php
}
mysql_close()
?>
Ajax Script Dny.js
function changeContent(val)
{
if (val=="")
// if blank, we'll set our innerHTML to be blank.
{
document.getElementById("val2div").innerHTML="";
return;
}
if (window.XMLHttpRequest) // new browser
{
xmlhttp=new XMLHttpRequest(); // new browser
alert("newb");
}
else // Old Browser
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// on state change
xmlhttp.onreadystatechange=function()
{
// if we get a good response from the webpage, display the output
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("val2div").innerHTML=xmlhttp.responseText;
}
}
// GET file.
xmlhttp.open("GET","val2.php?val2="+val, true);
xmlhttp.send();
alert(val)
}
post到MySQL input.PHP
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql="INSERT INTO `test`.`test` (
`ID`,
`Dattime`,
`probtype`,
`probcode`
)
VALUES(
NULL,NOW(),'$_POST[probtype]','$_POST[probcode]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con); ?>
我希望我只是错过了一些简单的东西在那一刻。这是我第一次使用Ajax。我非常感谢此刻所有的帮助。
编辑:-最后一次编辑之前,我试图重写整个东西。是否有一种方法,使用Jquery我可以解决这个问题?如果没有,谁有一个简单的方法,使它只是完整的回发没有AJAX?
我非常感谢那些到目前为止做出贡献的人,以及任何有任何想法的人。
提前感谢!
-
在无休止地审查代码后,我发现在使用IE和上面的代码时一切都很好!
在val2.php中缺少关闭元素
</select>
我猜在input。php中,应该是'{$_POST['probtype']}'
而不是'$_POST[probtype]'
$sql="INSERT INTO `test`.`test` (
`ID`,
`Dattime`,
`probtype`,
`probcode`
)
VALUES(
NULL,NOW(),'{$_POST['probtype']}','{$_POST['probcode']}')";
- Node.js - POST to iFrame?
- POST to Django 模型与 ManyToManyFiled 给出不正确的类型.预期 pk 值,
- jquery ajax post to .aspx page load - how to read variable p
- Json POST To Curl PHP
- $.post-to-php文件在AmazonEC2中没有'似乎不起作用
- jQuery POST to PHP显示在浏览器中,但不显示在PHP文件中
- Javascript Facebook Open Graph: Post to wall?
- jQuery POST to Node.JS Fails
- Wordpress: POST to .php with Ajax
- JQuery/Ajax post to php 会破坏 JQuery/Js 代码
- Ruby on rails,新的 POST to API 和刷新页面
- 跨域 Jquery JSONP POST to Rails 应用程序
- Phonegap Ajax Post to Rails 3.2.2 获取 MultiJson::D ecodeError
- jQuery Ajax POST to Rails 3.2.2 不是 Access-Control-Allow-Orig
- Facebook post to Wall Javascript HTML5
- Rails在javascript和post-to-page中查找详细信息
- jQuery AJAX POST to Rails 3.2.1 Params获胜'不起作用
- Ajax发送一个get-to-original页面,而不是一个post-to-different页面
- AJAX POST to PHP JSON error
- POST to templateUrl