2015-09-28 15 views
-2

这是我的PHP代码,创建使用MySQL查询结果的表:如何将JavaScript值发送到PHP脚本?

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值,当我的表单中的搜索按钮被点击。

感谢您的关注

+3

使用'

'元素并将其提交到您的PHP页面,或使用AJAX。 –

+0

谢谢,我有形式,但我的变量我们在Java中,我想用它在PHP代码。如果可能的话给我一个例子。再次感谢。 – Yilmazam

回答

0

您可以使用ajax。如果你有一个ID =“myForm会”和(例如)输入字段的表格:名字,姓氏,用户名和密码,下面的脚本应该发送数据到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(例如)进行数据库查询并返回结果:

// 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"]. 

?> 

因为你的问题是相当ambigious,我把更多的精力来给大家介绍了Ajax的基本的想法,让你的工作你自己的解决方案,而不是建议一个潜在的解决方案 - 最终不可能是你要找的...

而且由于我们正在讨论ajax的基础知识,这是一个很好的做法,以确保您的ajax文件,因为他们可以从任何浏览器:

在任何ajax文件的最开始处,在“?php”标记的下面,可以添加下面SE线,以保护文件从浏览器 - 但是仍然可以访问到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();} 

希望帮助你和其他人。 T.

UPDATE:

它始终是一个很好的做法,让您的PHP和JavaScript文件分开...在上面的例子有理想涉及3个文件:主要的PHP文件,脚本文件和ajax-php文件。

所以最好在你的“main”php文件的“body”标签之后 - 你应该包含脚本文件(在jquery of course!之后)。这样的:

<!-- 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的包括”)。

正如你在上面看到的,JavaScript文件也有“.php”扩展名(不是“.js”)。这是我喜欢做的一个“技巧”,因为它使我能够在js文件中执行php代码。当然,该文件中的所有JavaScript代码都包含在“脚本”标签之间。假设的“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,反之亦然!

+0

感谢百万,但另一个问题,如果我不想使用另一个PHP文件,我该怎么办?你知道,我的java和php代码在同一个文件中。 – Yilmazam

+0

@Yilmazam:您应该至少使用两个php文件:main.php和ajax.php ...也可以更好地将javascript从main.php文件中分离出来......查看我的答案更新。我详细解释了一切...... –

+0

感谢您的快速解答。 – Yilmazam

相关问题