gpt4 book ai didi

php - 如何找出这个数据库插入和检索在哪里中断?

转载 作者:行者123 更新时间:2023-11-29 00:51:37 25 4
gpt4 key购买 nike

问题已解决...变量未定义。当 stackoverflow 允许我回答自己的问题时,我将添加完整答案

更新,firebug 告诉我变量 barrister 在 plugin.php 中未定义,但我确实定义了该变量(或者至少我尝试这样做)这是它应该未定义的行:if(barrister.attr("value"))

这是我尝试定义它的行:var barrister = $('input:radio[name=barrister]:checked').val();


我正在使用带有单选按钮的表单来提交数据。文件 plugin.php 应该使用 javascript/ajax 获取数据,然后将其发送到 results.php,以便可以将其插入到数据库中。信息也从数据库中检索并应该插入到 html 中。我不知道它在哪里崩溃了,但我知道数据库连接本身是有效的。知道如何找出断开的链接吗?当我测试它并检查数据库时,其中没有数据。

the database

表单

<form method="post" id="form">  
<table>
<tr>
<td><label>Barrister's Exam</label></td>
<td><input type="radio" id="barrister" name="barrister" value="1" /> Pass</td>
<td><input type="radio" id="barrister" name="barrister" value="0" /> Fail</td>
</tr>
<tr>
<td>Submit</td>
<td><input id="send" type="submit" value="Submit" /></td>
</tr>
</table>
</form>

通过plugin.php获取表单数据

function my_function() { ?>

<script type="text/javascript">

$(document).ready(function(){
//global vars
var barrister = $('input:radio[name=barrister]:checked').val();
var loading = $("#loading");
var messageList = $(".content > ul");

//functions
function updateShoutbox(){
//just for the fade effect
messageList.hide();
loading.fadeIn();
//send the post to shoutbox.php
$.ajax({
type: "POST", url: "http://yearofcall.com/wp-content/plugins/myplugin/results.php", data: "action=update",
complete: function(data){
loading.fadeOut();
messageList.html(data.responseText);
messageList.fadeIn(2000);
}
});
}
//check if all fields are filled
function checkForm(){
if(barrister.attr("value"))
return true;
else
return false;
}

//Load for the first time the shoutbox data
updateShoutbox();

//on submit event
$("#form").submit(function(){
if(checkForm()){
var barrister = barrister.attr("value");
//we deactivate submit button while sending
$("#send").attr({ disabled:true, value:"Sending..." });
$("#send").blur();
//send the post to results.php
$.ajax({
type: "POST", url: "http://yearofcall.com/wp-content/plugins/myplugin/results.php", data: "action=insert&barrister=" + barrister,
complete: function(data){
messageList.html(data.responseText);
updateShoutbox();
//reactivate the send button
$("#send").attr({ disabled:false, value:"Send" });
}
});
}
else alert("Please fill all fields!");
//we prevent the refresh of the page after submitting the form
return false;
});
});

</script>
<?php

}

add_action('wp_head', 'my_function');

使用 results.php 将数据放入数据库“year”的“results”表中我知道数据库连接有效

<?php
define("HOST", "host");
define("USER", "user");
define("PASSWORD", "password");
define("DB", "year");

/************************
FUNCTIONS
/************************/
function connect($db, $user, $password){
$link = @mysql_connect($db, $user, $password);
if (!$link)
die("Could not connect: ".mysql_error());
else{
$db = mysql_select_db(DB);
if(!$db)
die("Could not select database: ".mysql_error());
else return $link;
}
}
function getContent($link, $num){
$res = @mysql_query("SELECT barrister FROM results ORDER BY date DESC LIMIT ".$num, $link);
if(!$res)
die("Error: ".mysql_error());
else
return $res;
}
function insertMessage($barrister){
$query = sprintf("INSERT INTO results(barrister) VALUES('%s');", mysql_real_escape_string(strip_tags($barrister))
));
$res = @mysql_query($query);
if(!$res)
die("Error: ".mysql_error());
else
return $res;
}

/******************************
MANAGE REQUESTS
/******************************/
if(!$_POST['action']){
//We are redirecting people to our shoutbox page if they try to enter in our shoutbox.php
header ("Location: index.html");
}
else{
$link = connect(HOST, USER, PASSWORD);
switch($_POST['action']){
case "update":
$res = getContent($link, 100);
while($row = mysql_fetch_array($res)){
$result .= "<li><strong>".$row['user']."</strong><img src=\"http://eslangel.com/wp-content/plugins/myplugin/CSS/images/bullet.gif\" alt=\"-\" />".$row['message']." </li>";
}
echo $result;
break;
case "insert":
echo insertMessage($_POST['barrister']);
break;
}
mysql_close($link);
}


?>

从数据库中检索数据时返回到的html

 <div id="container">  
<ul class="menu">
<li></li>
</ul>
<span class="clear"></span>
<div class="content">
<div id="loading"><img src="http:///></div>
<ul>
<ul>
</div>
</div>

最佳答案

我注意到的第一个错误是所有单选按钮都具有相同的 ID。 ID 属性在页面上应该是唯一的。除此之外,调试 javascript 的最佳工具是控制台。

Javascript Debugging for beginners

编辑

这是一个使用您的标记提交的 ajax 表单示例 http://jsfiddle.net/UADu5/

$(function(){
// Submit form via ajax
$('#check').click(function(){
var barrister = null
$.each($("input[name='barrister']:checked"), function(){
if($(this).val() == 1)
barrister = $(this).attr('value');
});
if(barrister){
$.ajax({
type: "POST", url: "http://yearofcall.com/wp-content/plugins/myplugin/results.php",
data: "action=insert&barrister=" + barrister,
complete: function(data){
messageList.html(data.responseText);
updateShoutbox();

//reactivate the send button
$("#send").attr({ disabled:false, value:"Send" });
}
});
} else {
alert('Please fill all fields!')
}

})
})

<form method="post" id="form">
<fieldset>
<legend>Grade Exams</legend>
<ul>
<li>
<p>Barrister's Exam</p>
<label>
<input type="radio" name="barrister" value="1" /> Pass
</label>
<label>
<input type="radio" name="barrister" value="0" /> Fail
</label>
</li>
<li class="submit">
<input type="button" id="check" value="Test">
</li>
</ul>
</fieldset>
</form>

关于php - 如何找出这个数据库插入和检索在哪里中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com