Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对PHP的Ajax调用_Php_Jquery_Forms - Fatal编程技术网

对PHP的Ajax调用

对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

我在一个项目中工作,我必须使用几个输入,这些输入必须由客户插入一个数字来完成。如果数字等于或大于6,“aprobada”应出现在输入文本中,否则“reprobada”。可以将变量从php传递到jquery吗

欢迎所有意见和反馈:)

谢谢大家!

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();