这是我的php代码,它使用mysql查询的结果创建一个表:
echo "<table id='table' class='selectQuery'>
while($row = mysqli_fetch_array($slctQuery)) {
// ; echo $row['id']; echo
echo "<tr class='someClass' idNumber="; echo $row['id']; echo ">
<td>";
echo $row['fname'];
echo "</td>
<td>";
echo $row['lname'];
echo "</td>;
</tr>";
}
echo "</table>";
这部分是我的jquery代码,用于在点击表格行时更改样式:
<script>
$(document).ready(function(){
$("#table tr").click(function(){
$('.someClass').removeClass('selected');
$(this).addClass('selected');
idNum = $(this).attr('idNumber');
});
$("#table tr").click(function(){
$("#DelEdtQuestion").addClass('selected1');
});
});
</script>
这部分用于风格:
<style>
tr.selected {
background-color: brown !important;
color: #FFF;
}
</style>
这是我的按钮
的php代码if(@$_POST['Search']){
/// what should I do?
}
所以,现在我想在点击表格中的搜索按钮时获得我的idNum值。
感谢您的关注
答案 0 :(得分:1)
您可以使用ajax。如果你有一个id =“myform”的表单和(示例)输入字段:firstname,lastname,username和password,下面的脚本应该将数据发送到php:
$(document).ready(function(){
var datastring = $("#myform").serialize();
$.ajax({
type: 'POST',
url: 'ajaxfile.php',
data: datastring
}).done(function(res){
var res = $.trim(res);
alert(res);
});
});
ajaxfile.php可以是这样的:
<?php
$firstname = mysql_real_escape_string($_POST["firstname"]);
$lastname = mysql_real_escape_string($_POST["lastname"]);
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
//here you have the variables ready to do anything you want with them...
//for example insert them in mysql database:
$ins = "INSERT INTO users (firstname, lastname, username, password ) VALUES ( '$firstname', '$lastname', '$username', '$password' )";
if(mysql_query($ins)){echo "SUCCESS";}else{echo "FAILURE";}
?>
另一个与你的类似的例子是从表中获取行id,将其传递给ajax,让ajax(例如)对数据库进行查询并返回结果:
// your script, modified for ajax:
$(document).ready(function(){
$("#table tr").click(function(){
$('.someClass').removeClass('selected');
$(this).addClass('selected');
var idNum = $(this).attr('idNumber'); //use "var" to -initially- set the variable
$.ajax({
type: 'POST',
url: 'ajaxfile.php',
data: 'id='+idNum
}).done(function(res){
var res = $.trim(res);
alert(res);
});
});
$("#table tr").click(function(){
$("#DelEdtQuestion").addClass('selected1');
});
});
修改了ajaxfile.php以适应上面的例子:
<?php
$id = mysql_real_escape_string($_POST["id"]);
//query database to get results:
$result = "SELECT * FROM `users` WHERE `id` = '$id' LIMIT 1";
$row = mysql_fetch_assoc($result);
echo "Username: ".$row["username"]."Password: ".$row["password"]."Firstname: ".$row["firstname"]."Lastname: ".$row["lastname"].
?>
由于您的问题相当暧昧,我付出更多努力让您了解ajax的基本知识,以便您制定出自己的解决方案,而不是建议一个潜在的解决方案 - 最终可能不是您的正在寻找......
由于我们讨论的是ajax基础知识,因此可以保护您的ajax文件,因为它们可以从任何浏览器访问,这是一个很好的做法:
在任何ajax文件的最开头,在“?php”标记的正下方,你可以在下面添加这些行,以保护文件不被浏览器访问 - 但仍然可以访问ajax:
//protect the file from un-authorized access
define('AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
if(!AJAX_REQUEST) {die();}
希望能帮助你和他人。吨。
更新:
将php和javascript文件分开保存总是一个好习惯...在上面的示例中,理想情况下涉及3个文件:主要的php文件,脚本文件和ajax-php文件。
所以 - 优选地在你的“主”php文件的“body”标签之后 - 你应该包括脚本文件(在jquery ofcourse之后!)。像那样:
<!-- jQuery v.1.11.3-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- include scripts file -->
<?php include("scripts.php"); ?>
(请注意,对于jquery,我使用常规的“脚本”标签,但对于脚本文件,我只是做一个“php include”)。
如上所述,javascript文件也有“.php”扩展名(不是“.js”)。这是我喜欢做的“技巧”因为它让我能够在js文件中执行php代码。当然,该文件中的所有javascript代码都包含在“script”标记之间。
假设的“scripts.php”示例:
<script>
// I create a js variable that takes value from php
var phpDate = '<?php date("Y-m-d"); ?>';
alert(phpDate);
//or pass the contents of another php variable in your app to javascript:
var myPhpVar = '<?php echo $my_php_var; ?>';
//or put a php SESSION to a js variable:
var mySess = '<?php echo $_SESSION["my_session"]; ?>';
</script>
当您想要传递给应用程序中已存在的javascript php变量时,上述内容非常方便。
这是一个非常长的答案(更像是一个教程!)...但现在应该非常清楚如何将值不仅从js传递到php而且反之亦然!!!