¿Como llamar una funcion de php con ajax?

Iniciado por SrTrp, 2 Septiembre 2017, 00:02 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Bueno cuando llamo la función todo pasa bien solo que no ejecuta mi función
me sale error: Fatal error: Call to undefined function ipact() in /custumber...

Código (javascript) [Seleccionar]

    function accionpab(){
    $.ajax({
      url: 'control/config/setting.php',
      type: 'POST',
      dataType: 'html',
      data: { ipa: "1"},
      success:function(rst){
           alert(rst);
      }
  })
}

Código (php) [Seleccionar]

if(isset($_REQUEST["ipa"])){
  if($_REQUEST["ipa"] == 1 ){
     echo ipact();
     exit();
  }else{
     echo "ERROR";
     
     exit();
  }
}

engel lex

Fatal error: Call to undefined function ipact()

Error fatal: Llamado a una funcion no definida

dicha funcion no exíste
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Ese es el problema.. dentro de ese mismo php si existe la función..
Código (php) [Seleccionar]

function ipact(){
     if($_SESSION['ip_alter'] == 1){
         $sql1 = "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
        $link->query($sql1);
        $_SESSION['ip_alter'] == 0;
        echo "<script>location.href ='http://www..com/.php';</script>";
     }else{
         $sql2 = "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
        $link->query($sql2);
            $_SESSION['ip_alter'] == 1;
                echo "<script>location.href ='http://www..com/.php';</script>";
     }
     
    }

engel lex

donde está declarada la funcion? (cuelga el php completo, si es muy largo, usa pastebin)

por cierto....

echo ipact();

está mal porque impact no tiene return
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Así lo eh dejado.. ya no me da el error pero no me da resultado ni parece que ejecuta  la función..
Código (php) [Seleccionar]

<?php
require("conex.php");
session_start();
if(
$_SESSION['id']){
    
$USER $_SESSION['usuario'];
    
    
    if(isset(
$_REQUEST["ipa"])){
  if(
$_REQUEST["ipa"] == ){
       function 
ipact(){ 
     if(
$_SESSION['ip_alter'] == 1){
         
$sql1 "UPDATE usuarios SET ip_alter='0' WHERE usuario='$USER'";
       
 $link->query($sql1);
       
 $_SESSION['ip_alter'] == 0;
       
 echo "<script>location.href ='http://www..com/.php';</script>";
     }else{
         
$sql2 "UPDATE usuarios SET ip_alter='1' WHERE usuario='$USER'";
       
 $link->query($sql2);
       
      $_SESSION['ip_alter'] == 1;
       
          echo "<script>location.href ='http://www..com/.php';</script>";
     }
     return;
    }
     exit();
  }else{
     echo 
"Otro campo de IPA";
     
     exit();
  }
 }
   
    
    
}


?>


AlbertoBSD

NOOO

$_SESSION['ip_alter'] == 1;

Eso es una expresion boleana que te devuel true o false, pero asi sin estar dentro de un IF solo es una linea que no hace nada, tiene que ser

$_SESSION['ip_alter'] = 1;

Y en el caso de 0 tambien un solo igual


Estas haciendo mucha cosas mal, El resultado que le devueles al Ajax deberia de estar formateado en JSON o algo similar, pero igual es el gusto de cada quien para programar si asi estas comodo procesando los resultados esta bien.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

engel lex

lo que dice AlbertoBSD es cierto, linea 19


igual no veo el archivo de la funcion impact
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Ya eh corregido lo que me ha dicho alberto, sigue igual.

Cita de: engel lex en  2 Septiembre 2017, 17:13 PM
lo que dice AlbertoBSD es cierto, linea 19


igual no veo el archivo de la funcion impact

Cual función impact? no te estarás referiendo a ipact?

AlbertoBSD

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

#!drvy

La función no tiene ningun sentido. Tampoco la invocas en ningun lado. Como te ha comentado AlbertoBSD, == es un comparador..

A la funcion, no la pasas la variable USER y tampoco el $link para el handler a la base de datos.. Además repites mucho codigo de forma innecesaria.

Código (php) [Seleccionar]
<?php
require("conex.php");
session_start();

function 
ipact($user$link){

    
// Si SESSION.. es igual a 1, entonces ip_alter = 0 y viceversa.
    
$ip_alter = ($_SESSION['ip_alter'] == 1) ? 1;
    
$query "UPDATE usuarios SET ip_alter='$ip_alter' WHERE usuario='$user'";
    
$link->query($query);
    
$_SESSION['ip_alter'] = $ip_alter;

    return 
$ip_alter;
}


if(
$_SESSION['id']){
    
$USER $_SESSION['usuario'];

    if(isset(
$_REQUEST["ipa"])){
        if(
$_REQUEST["ipa"] == ){
            
ipact($USER$link);
            echo 
"<script>location.href ='http://www..com/.php';</script>";
            exit;
        } else {
            echo 
"Otro campo de IPA";
            exit;
        }
    }
}


Saludos