我发现解决这个问题有些困难。我想要做的是将从数据库中选择的变量传递给javascript函数。
在这一行$('.form-container a.startStampleDiv').click(function()
,我正在尝试使用旧数据库中的选定数据启动对数据库的新查询。所以我需要的是将选定的costumerId
从数据库返回到ajax,以便我可以通过它。我希望你们能理解我的问题并试着帮助我。
注意:这段代码对我有用,唯一缺少的是将变量从php返回到ajax。
这是js代码:
$('#searchCostumer-btn').click(function(){
var phonenumber = $('#phonenumber').val();
var phonenumberReg = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
var phonenumberError = Boolean(true);
if (phonenumber==""){
$('#phonenumber').css("border", "1px solid red");
phonenumberError= false;
}
else if(!phonenumberReg.test(phonenumber)){
$('#phonenumber').css("border", "1px solid red");
phonenumberError= false;
}
else{
$('#phonenumber').css("border", "1px solid white");
}
if(phonenumberError===true){
$.ajax({
type:'POST',
data:{phonenumber: phonenumber},
url: 'php/searchCostumer.php',
fail: function(data){
alert('An internal Error has been occured please contact adminstrator.');
},
success: function(data){
document.getElementById("search-Costumer").reset();
$('#search-result').html(data);
// Event handlar click on costumer
$('.form-container a.startStampleDiv').click(function(){
document.getElementById('stample-container').style.display = 'block';
// here i want to pass the costumerID to another php file or code. So what i need to do is to pass the costumerId that is returned by the php file...
});
}
});
}
});
这是php代码:
<?php
ob_start();
session_start();
include("figaroStampledb.php");
if(isset($_POST['phonenumber']))
{
$phonenumber = trim(htmlentities($_POST['phonenumber']));
try {
$con = new PDO("mysql:host=$sql_login_host;dbname=$sql_login_db", $sql_login_user, $sql_login_pass);
$selectCostumers = $con->prepare("SELECT * FROM fCostumers WHERE phonenumber=:phonenumber");
$selectCostumers ->execute(array(':phonenumber' => $phonenumber));
$resultCostumers = $selectCostumers->fetchAll(PDO::FETCH_ASSOC);
print json_encode($resultCostumers);
$count=$selectCostumers->rowCount();
if($count>0){
print '<script src="js/validation.js" type="text/javascript"></script>';
foreach ($resultCostumers as $costumer)
{
print '<div><i class="glyphicon glyphicon-user"> </i><a href="#stample-container" class="startStampleDiv">' ." " .$costumer['firstname'].'</a></div><hr>';
//$_SESSION['$costumerId'] = $costumer['id'];
}
}
else{
print'Kunden är icke registrerad';
}
}
catch(PDOException $e) {
trigger_error('Error occured while trying to insert into the DB:' . $e->getMessage(), E_USER_ERROR);
}
}
&GT;
答案 0 :(得分:1)
您可以在php脚本中添加此行以及print语句。
<input type="hidden" id="custmid" value="$your_custmerid_variable">
所以ajax响应也会在html中添加它但是它不会对html进行任何更改,因为它隐藏了..
比使用$(“#custmid”)提到的值更有价值.value();并进一步发送到你想要使用另一个ajax请求的php页面....希望你会弄清楚如何做到这一点......