对PHP的Ajax调用
我在一个项目中工作,我必须使用几个输入,这些输入必须由客户插入一个数字来完成。如果数字等于或大于6,“aprobada”应出现在输入文本中,否则“reprobada”。可以将变量从php传递到jquery吗 欢迎所有意见和反馈:) 谢谢大家!对PHP的Ajax调用,php,jquery,forms,Php,Jquery,Forms,我在一个项目中工作,我必须使用几个输入,这些输入必须由客户插入一个数字来完成。如果数字等于或大于6,“aprobada”应出现在输入文本中,否则“reprobada”。可以将变量从php传递到jquery吗 欢迎所有意见和反馈:) 谢谢大家! CODE JQUERY ,HTML <script src="jquery-2.1.0.js" type="text/javascript"></script> <script> function submit
CODE JQUERY ,HTML
<script src="jquery-2.1.0.js" type="text/javascript"></script>
<script>
function submitForm() {
$.ajax({type:'POST', url: 'formtronco.php', data:$('#troncocomun').serialize(),
success: function(response) {
$('#troncocomun').find('#aqui').html(response); /*here would be this variable
'$acreditacion[0]' from php to respond in '#aqui'*/
$('#troncocomun').find('#alla').html(response); /*here would be this variable
'$acreditacion[1]' from php to respond in '#alla'*/
}});
return false;
}
</script>
....
<!-- PRIMER SEMESTRE -->
<div class="nivel">NIVEL I</div>
<form class="creditos" onsubmit="return submitForm();" name="troncocomun"
id="troncocomun" method="post" >
<div class="semestre1" >
<table >
<tr>
<td >
UNIDADES DE APRENDIZAJE
</td>
<td>
VALOR EN CRÉDITOS
</td>
<td >
CALIFICACIÓN
</td>
<td >
ACREDITACIÓN
</td>
<td >
CARGA ACADÉMICA
</td>
</tr>
<tr>
<td nowrap id="materia">
ALGEBRA
</td>
<td>
5.62
</td>
<td>
<input type="text" id="1" name="1" size="3px">
</td>
<td id="aqui" name="aqui">
</td>
<td>
Row 1
</td>
</tr>
<tr>
<td nowrap id="materia">
COMPUTACION BASICA I
</td>
<td>
4.5
</td>
<td>
<input type="text" id="2" name="2" size="3px">
</td>
<td id="alla" name="alla">
</td>
<td >
Row 2
</td>
</tr>
<tr>
</table>
<input type="submit" name="enviar" id="enviar" value="Procesar" />
</form>
CODE PHP:
<?php
if(isset($_POST['1']))
{
$acreditacion=array($_POST['1'],$_POST['2']);
if ($acreditacion[0] >=6 ) {
echo "Aprobada";}
else{
echo "Reprobada";
}
if ($acreditacion[1] >=6 ) {
echo "Aprobada";}
else{
echo "Reprobada";
}
}
?>
code JQUERY,HTML
函数submitForm(){
$.ajax({type:'POST',url:'formtronco.php',数据:$('troncomun').serialize(),
成功:功能(响应){
$('#troncomun').find('#aqui').html(response);/*以下是此变量
php中的“$acreditacion[0]”将在“#aqui”*/
$('#troncomun').find('#alla').html(response);/*以下是此变量
php中的“$acreditacion[1]”以“#alla”*/
}});
返回false;
}
....
尼维尔一号
阿普伦迪扎耶大学
克雷迪托斯谷酒店
加州大学
ACREDITACIÓN
卡加阿卡德埃米卡酒店
代数
5.62
一排
基础计算I
4.5
第2排
PHP代码:
真的不是最整洁的东西。但这回答了你的问题:
<script>
var someVariable = <?php echo $phpVar; ?>;
</script>
确保在引用此变量的其他javascript之前包含此变量
但是,您不应该这样做,因为它非常不整洁-您实际上不需要像那样“传递变量”。在您的情况下,您不是将变量从PHP传递到JS,而是对PHP文件进行AJAX调用,请求JSON数据
function submitForm() {
$.ajax({
type:'POST',
url: 'formtronco.php',
data:$('#troncocomun').serialize(),
success: function(data) {
// If you're querying by ID, no need to search within another node
$('#aqui').html(data.val1);
$('#alla').html(data.val2);
}
});
});
在formtronco.php中
<?php
echo json_encode(array(
'val1' => 'Some string',
'val2' => 'Another string'
));
?>
要从PHP向JS传递一个变量(实际上是您要求的),请执行以下操作
<script>
var errorMessage = <?php echo json_encode($errorMsgPhpVar); ?>;
alert(errorMessage);
</script>
var errorMessage=;
警报(错误消息);
json\u encode
将使它甚至适用于带引号的字符串和嵌入的新行,除了适用于PHP对象之外。另一种方法是创建一个在页面加载时保存变量的元素,例如,创建一个隐藏的输入字段
<input class="myVar" type="hidden" value="<?= $phpMyVar ?>">
通过这种方式,您可以随时访问变量,甚至可以将javascript放在任何需要的地方。唯一的问题是变量是字符串,因为它需要转义。或者是一个物体。解决这个问题的一个简单方法是使用JSON对数据进行编码。在某些地方,您无法将整个体系结构更改为基于AJAX的体系结构,而这种技术是必要的。出于某些原因,您可能还希望避免初始AJAX请求,但您可以使用json对象,而无需重复使用AJAX。只需内联对象,然后通过js提取值。我不确定内联对象是什么意思,但如果你看到我的答案,我想我们是一致的。根据OP postedSure的说法,这里不需要隐藏字段,只需要变量,我只是建议使用一个可以随时访问的DOM元素,而不必担心页面加载后要加载的内联javascript元素,甚至外部javascript——隐藏输入只是一个例子——他可以随时访问。我只是说,这比变量的权重要重得多,这并不比添加一个变量更干净……这很好——我只是给出了另一个选项。我从来没有说过这是一种更干净或更好的方法。好吧,但我如何才能将这个变量用于另一行,$(“#troncocomun”).find(“#aqui”).html(响应)@EduardoRobles所以你不是想把一个变量从PHP传递到JS,你是想生成一个可以在AJAX调用中使用的PHP脚本。好吧,我是AJAX新手,有什么线索吗,我如何进行AJAX调用?一个没有正确缩进的代码问题会发出以下消息:“我不在乎是否有人能读我的代码”
<input class="myVar" type="hidden" value="<?= $phpMyVar ?>">
var myVal = $('.myVar').val();